{"version":3,"file":"static/js/main.047403dd.js","mappings":"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","sources":["../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/exenv/index.js","../node_modules/extend/index.js","../node_modules/inline-style-parser/index.js","../node_modules/is-buffer/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/index.js","../node_modules/react-use-websocket/src/index.ts","../node_modules/react-use-websocket/src/lib/attach-listener.ts","../node_modules/react-use-websocket/src/lib/attach-shared-listeners.ts","../node_modules/react-use-websocket/src/lib/constants.ts","../node_modules/react-use-websocket/src/lib/create-or-join.ts","../node_modules/react-use-websocket/src/lib/get-url.ts","../node_modules/react-use-websocket/src/lib/globals.ts","../node_modules/react-use-websocket/src/lib/manage-subscribers.ts","../node_modules/react-use-websocket/src/lib/proxy.ts","../node_modules/react-use-websocket/src/lib/socket-io.ts","../node_modules/react-use-websocket/src/lib/use-event-source.ts","../node_modules/react-use-websocket/src/lib/use-socket-io.ts","../node_modules/react-use-websocket/src/lib/use-websocket.ts","../node_modules/react-use-websocket/src/lib/util.ts","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","../node_modules/warning/warning.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","context/AuthProvider.js","context/ProfilesProvider.js","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/redactEmail.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","hooks/useAuth.js","component/RequireAuth.js","component/Layout.js","hooks/useProfiles.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","component/Button.js","api/axios.js","hooks/useLogout.js","component/LanguageDropdown.js","assets/images/otd.svg","assets/images/ce.svg","assets/images/facebook.svg","assets/images/instagram.svg","assets/images/onetwo-analytics.svg","assets/Assets.js","component/Navbar.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/i18next/dist/esm/i18next.js","component/OneTwoLink.js","component/Footer.js","component/Loading.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","component/card/ProfileCardHeader.js","component/card/ProfileCardBody.js","component/card/ProfileCardSubmit.js","component/card/ProfileCardConstants.js","component/card/ProfileCardFormFunctions.js","component/card/ProfileCardFormElements.js","component/FormElements.js","component/card/ProfileCardForm.js","component/card/OneTwoModal.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","api/uploadFile.js","component/card/datahandlers/UploadFileList.js","component/card/datahandlers/UploadFile.js","component/card/datahandlers/Upload.js","api/dexcom.js","api/data.js","component/card/datahandlers/Dexcom.js","component/card/datahandlers/Libre.js","component/card/datahandlers/Nightscout.js","component/card/datahandlers/DataButton.js","api/profiles.js","api/pipeline.js","component/card/ProfileCardData.js","component/card/ProfileCard.js","component/Title.js","page/Home.js","component/settings/Terms.js","api/account.js","component/settings/UserData.js","api/passwords.js","component/settings/ChangePassword.js","component/settings/DeleteAccount.js","page/Settings.js","page/Missing.js","hooks/useLogin.js","component/SignInForm.js","page/SignIn.js","hooks/useRefreshToken.js","page/LoadingPage.js","component/PersistLogin.js","page/Unauthorized.js","page/Dexcom.js","../node_modules/i18next-http-backend/esm/utils.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/i18next-http-backend/esm/index.js","i18n.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/ccount/index.js","../node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character/index.js","../node_modules/mdast-util-find-and-replace/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/lib/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-normalize-identifier/index.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/handle/break.js","../node_modules/mdast-util-to-markdown/lib/handle/code.js","../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents/lib/index.js","../node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string/lib/index.js","../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/html.js","../node_modules/mdast-util-to-markdown/lib/handle/image.js","../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../node_modules/mdast-util-to-markdown/lib/handle/link.js","../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../node_modules/mdast-util-phrasing/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-phrasing/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../node_modules/mdast-util-to-markdown/lib/handle/index.js","../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../node_modules/longest-streak/index.js","../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../node_modules/mdast-util-to-markdown/lib/handle/list.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../node_modules/mdast-util-to-markdown/lib/handle/root.js","../node_modules/mdast-util-to-markdown/lib/handle/text.js","../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/micromark-extension-gfm/node_modules/micromark-util-chunked/index.js","../node_modules/micromark-extension-gfm/node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space/index.js","../node_modules/micromark-extension-gfm-footnote/node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-chunked/index.js","../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space/index.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/remark-gfm/lib/index.js","../node_modules/mdast-util-gfm/lib/index.js","assets/md/privacy_policy_en.js","assets/md/terms_of_use_en.js","component/public/MarkDownBox.js","assets/md/privacy_policy_sv.js","assets/md/terms_of_use_sv.js","App.js","index.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\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","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=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)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=318 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName,\n parentSelector = _this$props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Remove classes.\n bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (isTabKey(event)) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName,\n parentSelector = _props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Add classes.\n bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n parentSelector: _propTypes2.default.func,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction isNotOverflowing(element, style) {\n return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n var displayValue = style.getPropertyValue(\"display\");\n return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","export { useWebSocket as default } from './lib/use-websocket';\n\nexport { SendMessage, Options } from './lib/types';\n\nexport { useSocketIO } from './lib/use-socket-io';\n\nexport { ReadyState } from './lib/constants';\n\nexport { useEventSource } from './lib/use-event-source';\n\nexport { resetGlobalState } from './lib/util';\n","import { MutableRefObject } from 'react';\nimport { setUpSocketIOPing } from './socket-io';\nimport {\n DEFAULT_RECONNECT_LIMIT,\n DEFAULT_RECONNECT_INTERVAL_MS,\n ReadyState,\n isEventSourceSupported,\n} from './constants';\nimport { Options, SendMessage, WebSocketLike } from './types';\nimport { assertIsWebSocket } from './util';\n\nexport interface Setters {\n setLastMessage: (message: WebSocketEventMap['message']) => void;\n setReadyState: (readyState: ReadyState) => void;\n}\n\nconst bindMessageHandler = (\n webSocketInstance: WebSocketLike,\n optionsRef: MutableRefObject,\n setLastMessage: Setters['setLastMessage'],\n) => {\n webSocketInstance.onmessage = (message: WebSocketEventMap['message']) => {\n optionsRef.current.onMessage && optionsRef.current.onMessage(message);\n if (typeof optionsRef.current.filter === 'function' && optionsRef.current.filter(message) !== true) {\n return;\n }\n setLastMessage(message);\n };\n};\n\nconst bindOpenHandler = (\n webSocketInstance: WebSocketLike,\n optionsRef: MutableRefObject,\n setReadyState: Setters['setReadyState'],\n reconnectCount: MutableRefObject,\n) => {\n webSocketInstance.onopen = (event: WebSocketEventMap['open']) => {\n optionsRef.current.onOpen && optionsRef.current.onOpen(event);\n reconnectCount.current = 0;\n setReadyState(ReadyState.OPEN);\n };\n};\n\nconst bindCloseHandler = (\n webSocketInstance: WebSocketLike,\n optionsRef: MutableRefObject,\n setReadyState: Setters['setReadyState'],\n reconnect: () => void,\n reconnectCount: MutableRefObject,\n) => {\n if (isEventSourceSupported && webSocketInstance instanceof EventSource) {\n return () => {};\n }\n assertIsWebSocket(webSocketInstance, optionsRef.current.skipAssert);\n let reconnectTimeout: number;\n\n webSocketInstance.onclose = (event: WebSocketEventMap['close']) => {\n optionsRef.current.onClose && optionsRef.current.onClose(event);\n setReadyState(ReadyState.CLOSED);\n if (optionsRef.current.shouldReconnect && optionsRef.current.shouldReconnect(event)) {\n const reconnectAttempts = optionsRef.current.reconnectAttempts ?? DEFAULT_RECONNECT_LIMIT;\n if (reconnectCount.current < reconnectAttempts) {\n reconnectTimeout = window.setTimeout(() => {\n reconnectCount.current++;\n reconnect();\n }, optionsRef.current.reconnectInterval ?? DEFAULT_RECONNECT_INTERVAL_MS);\n } else {\n optionsRef.current.onReconnectStop && optionsRef.current.onReconnectStop(reconnectAttempts);\n console.warn(`Max reconnect attempts of ${reconnectAttempts} exceeded`);\n }\n }\n };\n\n return () => reconnectTimeout && window.clearTimeout(reconnectTimeout);\n};\n\nconst bindErrorHandler = (\n webSocketInstance: WebSocketLike,\n optionsRef: MutableRefObject,\n setReadyState: Setters['setReadyState'],\n reconnect: () => void,\n reconnectCount: MutableRefObject,\n) => {\n let reconnectTimeout: number;\n\n webSocketInstance.onerror = (error: WebSocketEventMap['error']) => {\n optionsRef.current.onError && optionsRef.current.onError(error);\n if (isEventSourceSupported && webSocketInstance instanceof EventSource) {\n optionsRef.current.onClose && optionsRef.current.onClose({\n ...error,\n code: 1006,\n reason: `An error occurred with the EventSource: ${error}`,\n wasClean: false,\n });\n\n setReadyState(ReadyState.CLOSED);\n webSocketInstance.close();\n }\n \n if (optionsRef.current.retryOnError) {\n if (reconnectCount.current < (optionsRef.current.reconnectAttempts ?? DEFAULT_RECONNECT_LIMIT)) {\n reconnectTimeout = window.setTimeout(() => {\n reconnectCount.current++;\n reconnect();\n }, optionsRef.current.reconnectInterval ?? DEFAULT_RECONNECT_INTERVAL_MS);\n } else {\n optionsRef.current.onReconnectStop && optionsRef.current.onReconnectStop(optionsRef.current.reconnectAttempts as number);\n console.warn(`Max reconnect attempts of ${optionsRef.current.reconnectAttempts} exceeded`);\n }\n }\n };\n\n return () => reconnectTimeout && window.clearTimeout(reconnectTimeout);\n};\n\nexport const attachListeners = (\n webSocketInstance: WebSocketLike,\n setters: Setters,\n optionsRef: MutableRefObject,\n reconnect: () => void,\n reconnectCount: MutableRefObject,\n sendMessage: SendMessage,\n ): (() => void) => {\n const { setLastMessage, setReadyState } = setters;\n\n let interval: number;\n let cancelReconnectOnClose: () => void;\n let cancelReconnectOnError: () => void;\n\n if (optionsRef.current.fromSocketIO) {\n interval = setUpSocketIOPing(sendMessage);\n }\n\n bindMessageHandler(\n webSocketInstance,\n optionsRef,\n setLastMessage,\n );\n\n bindOpenHandler(\n webSocketInstance,\n optionsRef,\n setReadyState,\n reconnectCount,\n );\n\n cancelReconnectOnClose = bindCloseHandler(\n webSocketInstance,\n optionsRef,\n setReadyState,\n reconnect,\n reconnectCount,\n );\n\n cancelReconnectOnError = bindErrorHandler(\n webSocketInstance,\n optionsRef,\n setReadyState,\n reconnect,\n reconnectCount,\n );\n\n return () => {\n setReadyState(ReadyState.CLOSING);\n cancelReconnectOnClose();\n cancelReconnectOnError();\n webSocketInstance.close();\n if (interval) clearInterval(interval);\n };\n};\n","import { sharedWebSockets } from './globals';\nimport { DEFAULT_RECONNECT_LIMIT, DEFAULT_RECONNECT_INTERVAL_MS, ReadyState, isEventSourceSupported } from './constants';\nimport { getSubscribers } from './manage-subscribers';\nimport { MutableRefObject } from 'react';\nimport { Options, SendMessage, WebSocketLike } from './types';\nimport { setUpSocketIOPing } from './socket-io';\n\nconst bindMessageHandler = (\n webSocketInstance: WebSocketLike,\n url: string,\n) => {\n webSocketInstance.onmessage = (message: WebSocketEventMap['message']) => {\n getSubscribers(url).forEach(subscriber => {\n if (subscriber.optionsRef.current.onMessage) {\n subscriber.optionsRef.current.onMessage(message);\n }\n\n if (\n typeof subscriber.optionsRef.current.filter === 'function' &&\n subscriber.optionsRef.current.filter(message) !== true\n ) {\n return;\n }\n\n subscriber.setLastMessage(message);\n });\n };\n};\n\nconst bindOpenHandler = (\n webSocketInstance: WebSocketLike,\n url: string,\n) => {\n webSocketInstance.onopen = (event: WebSocketEventMap['open']) => {\n getSubscribers(url).forEach(subscriber => {\n subscriber.reconnectCount.current = 0;\n if (subscriber.optionsRef.current.onOpen) {\n subscriber.optionsRef.current.onOpen(event);\n }\n\n subscriber.setReadyState(ReadyState.OPEN);\n });\n };\n};\n\nconst bindCloseHandler = (\n webSocketInstance: WebSocketLike,\n url: string,\n) => {\n if (webSocketInstance instanceof WebSocket) {\n webSocketInstance.onclose = (event: WebSocketEventMap['close']) => {\n getSubscribers(url).forEach(subscriber => {\n if (subscriber.optionsRef.current.onClose) {\n subscriber.optionsRef.current.onClose(event);\n }\n \n subscriber.setReadyState(ReadyState.CLOSED);\n });\n \n delete sharedWebSockets[url];\n \n getSubscribers(url).forEach(subscriber => {\n if (\n subscriber.optionsRef.current.shouldReconnect &&\n subscriber.optionsRef.current.shouldReconnect(event)\n ) {\n const reconnectAttempts = subscriber.optionsRef.current.reconnectAttempts ?? DEFAULT_RECONNECT_LIMIT;\n if (subscriber.reconnectCount.current < reconnectAttempts) {\n setTimeout(() => {\n subscriber.reconnectCount.current++;\n subscriber.reconnect.current();\n }, subscriber.optionsRef.current.reconnectInterval ?? DEFAULT_RECONNECT_INTERVAL_MS);\n } else {\n subscriber.optionsRef.current.onReconnectStop && subscriber.optionsRef.current.onReconnectStop(subscriber.optionsRef.current.reconnectAttempts as number);\n console.warn(`Max reconnect attempts of ${reconnectAttempts} exceeded`);\n }\n }\n });\n };\n }\n};\n\nconst bindErrorHandler = (\n webSocketInstance: WebSocketLike,\n url: string,\n) => {\n webSocketInstance.onerror = (error: WebSocketEventMap['error']) => {\n getSubscribers(url).forEach(subscriber => {\n if (subscriber.optionsRef.current.onError) {\n subscriber.optionsRef.current.onError(error);\n }\n if (isEventSourceSupported && webSocketInstance instanceof EventSource) {\n subscriber.optionsRef.current.onClose && subscriber.optionsRef.current.onClose({\n ...error,\n code: 1006,\n reason: `An error occurred with the EventSource: ${error}`,\n wasClean: false,\n });\n \n subscriber.setReadyState(ReadyState.CLOSED);\n }\n });\n if (isEventSourceSupported && webSocketInstance instanceof EventSource) {\n webSocketInstance.close();\n }\n };\n};\n\nexport const attachSharedListeners = (\n webSocketInstance: WebSocketLike,\n url: string,\n optionsRef: MutableRefObject,\n sendMessage: SendMessage,\n) => {\n let interval: number;\n\n if (optionsRef.current.fromSocketIO) {\n interval = setUpSocketIOPing(sendMessage);\n }\n\n bindMessageHandler(webSocketInstance, url);\n bindCloseHandler(webSocketInstance, url);\n bindOpenHandler(webSocketInstance, url);\n bindErrorHandler(webSocketInstance, url);\n\n return () => {\n if (interval) clearInterval(interval);\n };\n};\n","import { EventSourceEventHandlers, EventSourceOptions } from \"./types\";\n\nconst MILLISECONDS = 1;\nconst SECONDS = 1000 * MILLISECONDS;\n\nexport const DEFAULT_OPTIONS = {};\nexport const EMPTY_EVENT_HANDLERS: EventSourceEventHandlers = {};\nexport const DEFAULT_EVENT_SOURCE_OPTIONS: EventSourceOptions = {\n withCredentials: false,\n events: EMPTY_EVENT_HANDLERS,\n};\nexport const SOCKET_IO_PING_INTERVAL = 25 * SECONDS;\nexport const SOCKET_IO_PATH = '/socket.io/?EIO=3&transport=websocket';\nexport const SOCKET_IO_PING_CODE = '2';\nexport const DEFAULT_RECONNECT_LIMIT = 20;\nexport const DEFAULT_RECONNECT_INTERVAL_MS = 5000;\nexport const UNPARSABLE_JSON_OBJECT = {};\n\nexport enum ReadyState {\n UNINSTANTIATED = -1,\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3,\n}\n\nconst eventSourceSupported = () => {\n try {\n return 'EventSource' in globalThis;\n } catch (e) {\n return false;\n }\n}\n\nexport const isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nexport const isEventSourceSupported = !isReactNative && eventSourceSupported();\n","import { MutableRefObject } from 'react';\nimport { sharedWebSockets } from './globals';\nimport { Options, SendMessage, Subscriber, WebSocketLike } from './types';\nimport { isEventSourceSupported, ReadyState, isReactNative } from './constants';\nimport { attachListeners } from './attach-listener';\nimport { attachSharedListeners } from './attach-shared-listeners';\nimport { addSubscriber, removeSubscriber, hasSubscribers } from './manage-subscribers';\n\n//TODO ensure that all onClose callbacks are called\n\nconst cleanSubscribers = (\n url: string,\n subscriber: Subscriber,\n optionsRef: MutableRefObject,\n setReadyState: (readyState: ReadyState) => void,\n clearSocketIoPingInterval: (() => void) | null,\n) => {\n return () => {\n removeSubscriber(url, subscriber);\n if (!hasSubscribers(url)) {\n try {\n const socketLike = sharedWebSockets[url];\n if (socketLike instanceof WebSocket) {\n socketLike.onclose = (event: WebSocketEventMap['close']) => {\n if (optionsRef.current.onClose) {\n optionsRef.current.onClose(event);\n }\n setReadyState(ReadyState.CLOSED);\n };\n }\n socketLike.close();\n } catch (e) {\n\n }\n if (clearSocketIoPingInterval) clearSocketIoPingInterval();\n\n delete sharedWebSockets[url];\n }\n }\n};\n\nexport const createOrJoinSocket = (\n webSocketRef: MutableRefObject,\n url: string,\n setReadyState: (readyState: ReadyState) => void,\n optionsRef: MutableRefObject,\n setLastMessage: (message: WebSocketEventMap['message']) => void,\n startRef: MutableRefObject<() => void>,\n reconnectCount: MutableRefObject,\n sendMessage: SendMessage,\n): (() => void) => {\n if (!isEventSourceSupported && optionsRef.current.eventSourceOptions) {\n if (isReactNative) {\n throw new Error('EventSource is not supported in ReactNative');\n } else {\n throw new Error('EventSource is not supported');\n }\n }\n\n if (optionsRef.current.share) {\n let clearSocketIoPingInterval: ((() => void) | null) = null;\n if (sharedWebSockets[url] === undefined) {\n sharedWebSockets[url] = optionsRef.current.eventSourceOptions ?\n new EventSource(url, optionsRef.current.eventSourceOptions) :\n new WebSocket(url, optionsRef.current.protocols);\n webSocketRef.current = sharedWebSockets[url];\n setReadyState(ReadyState.CONNECTING);\n clearSocketIoPingInterval = attachSharedListeners(\n sharedWebSockets[url],\n url,\n optionsRef,\n sendMessage,\n );\n } else {\n webSocketRef.current = sharedWebSockets[url];\n setReadyState(sharedWebSockets[url].readyState);\n }\n\n const subscriber: Subscriber = {\n setLastMessage,\n setReadyState,\n optionsRef,\n reconnectCount,\n reconnect: startRef,\n };\n \n addSubscriber(url, subscriber);\n\n return cleanSubscribers(\n url,\n subscriber,\n optionsRef,\n setReadyState,\n clearSocketIoPingInterval,\n );\n } else {\n webSocketRef.current = optionsRef.current.eventSourceOptions ?\n new EventSource(url, optionsRef.current.eventSourceOptions) :\n new WebSocket(url, optionsRef.current.protocols);\n setReadyState(ReadyState.CONNECTING);\n if (!webSocketRef.current) {\n throw new Error('WebSocket failed to be created');\n }\n\n return attachListeners(\n webSocketRef.current,\n {\n setLastMessage,\n setReadyState\n },\n optionsRef,\n startRef.current,\n reconnectCount,\n sendMessage,\n );\n }\n};\n","import { MutableRefObject } from 'react';\nimport { parseSocketIOUrl, appendQueryParams } from './socket-io';\nimport { Options } from './types';\n\nexport const getUrl = async (\n url: string | (() => string | Promise),\n optionsRef: MutableRefObject,\n) => {\n let convertedUrl: string;\n\n if (typeof url === 'function') {\n convertedUrl = await url();\n } else {\n convertedUrl = url;\n }\n\n const parsedUrl = optionsRef.current.fromSocketIO ?\n parseSocketIOUrl(convertedUrl) :\n convertedUrl;\n\n const parsedWithQueryParams = optionsRef.current.queryParams ?\n appendQueryParams(\n parsedUrl,\n optionsRef.current.queryParams\n ) :\n parsedUrl;\n\n return parsedWithQueryParams;\n};\n","import { WebSocketLike } from \"./types\";\n\nexport interface SharedWebSockets {\n [url: string]: WebSocketLike;\n}\n\nexport const sharedWebSockets: SharedWebSockets = {};\n\nexport const resetWebSockets = (url?: string): void => {\n if (url && sharedWebSockets.hasOwnProperty(url)) {\n delete sharedWebSockets[url];\n } else {\n for (let url in sharedWebSockets){\n if (sharedWebSockets.hasOwnProperty(url)){\n delete sharedWebSockets[url];\n }\n }\n }\n}\n","import { Subscriber } from './types';\n\nexport type Subscribers = {\n [url: string]: Set,\n}\n \nconst subscribers: Subscribers = {};\nconst EMPTY_LIST: Subscriber[] = [];\n\nexport const getSubscribers = (url: string): Subscriber[] => {\n if (hasSubscribers(url)) {\n return Array.from(subscribers[url]);\n }\n return EMPTY_LIST;\n};\n\nexport const hasSubscribers = (url: string): boolean => {\n return subscribers[url]?.size > 0;\n};\n\nexport const addSubscriber = (url: string, subscriber: Subscriber): void => {\n subscribers[url] = subscribers[url] || new Set();\n subscribers[url].add(subscriber);\n};\n\nexport const removeSubscriber = (url: string, subscriber: Subscriber): void => {\n subscribers[url].delete(subscriber);\n};\n\nexport const resetSubscribers = (url?: string): void => {\n if (url && subscribers.hasOwnProperty(url)) {\n delete subscribers[url];\n } else {\n for (let url in subscribers){\n if (subscribers.hasOwnProperty(url)){\n delete subscribers[url];\n }\n }\n }\n}\n","import { MutableRefObject } from 'react';\n\ntype IfEquals =\n (() => T extends X ? 1 : 2) extends\n (() => T extends Y ? 1 : 2) ? A : B;\n\ntype WritableKeys = {\n [P in keyof T]-?: IfEquals<{ [Q in P]: T[P] }, { -readonly [Q in P]: T[P] }, P>\n}[keyof T];\n\nexport const websocketWrapper = (\n webSocket: WebSocket,\n start: MutableRefObject<() => void>,\n): WebSocket => {\n\n return new Proxy(webSocket, {\n get: (obj, key: keyof WebSocket) => {\n const val = obj[key];\n if ((key as any) === 'reconnect') return start;\n if (typeof val === 'function') {\n console.error('Calling methods directly on the websocket is not supported at this moment. You must use the methods returned by useWebSocket.');\n \n //Prevent error thrown by invoking a non-function\n return () => {};\n } else {\n return val;\n }\n },\n set: >(obj: WebSocket, key: T, val: WebSocket[T]) => {\n if (/^on/.test(key)) {\n console.warn('The websocket\\'s event handlers should be defined through the options object passed into useWebSocket.')\n return false;\n } else {\n obj[key] = val;\n return true;\n }\n },\n });\n};\n\nexport default websocketWrapper;\n","import { SOCKET_IO_PING_INTERVAL, SOCKET_IO_PATH, SOCKET_IO_PING_CODE } from './constants';\nimport { QueryParams, SendMessage } from './types';\n\nexport const parseSocketIOUrl = (url: string) => {\n if (url) {\n const isSecure = /^https|wss/.test(url);\n const strippedProtocol = url.replace(/^(https?|wss?)(:\\/\\/)?/, '');\n const removedFinalBackSlack = strippedProtocol.replace(/\\/$/, '');\n const protocol = isSecure ? 'wss' : 'ws';\n\n return `${protocol}://${removedFinalBackSlack}${SOCKET_IO_PATH}`;\n } else if (url === '') {\n const isSecure = /^https/.test(window.location.protocol);\n const protocol = isSecure ? 'wss' : 'ws';\n const port = window.location.port ? `:${window.location.port}` : '';\n\n return `${protocol}://${window.location.hostname}${port}${SOCKET_IO_PATH}`;\n }\n\n return url;\n};\n\nexport const appendQueryParams = (url: string, params: QueryParams = {}): string => {\n const hasParamsRegex = /\\?([\\w]+=[\\w]+)/;\n const alreadyHasParams = hasParamsRegex.test(url);\n\n const stringified = `${Object.entries(params).reduce((next, [key, value]) => {\n return next + `${key}=${value}&`;\n }, '').slice(0, -1)}`;\n\n return `${url}${alreadyHasParams ? '&' : '?'}${stringified}`;\n};\n\nexport const setUpSocketIOPing = (sendMessage: SendMessage, interval = SOCKET_IO_PING_INTERVAL) => {\n const ping = () => sendMessage(SOCKET_IO_PING_CODE);\n\n return window.setInterval(ping, interval);\n};\n","import { useEffect, useRef } from 'react'\nimport { useWebSocket } from './use-websocket'\nimport { DEFAULT_EVENT_SOURCE_OPTIONS, EMPTY_EVENT_HANDLERS } from './constants'\nimport { EventSourceOptions, Options, EventSourceHook, EventSourceEventHandlers } from './types';\n\nexport const useEventSource = (\n url: string | (() => string | Promise) | null,\n { withCredentials, events, ...options }: EventSourceOptions = DEFAULT_EVENT_SOURCE_OPTIONS,\n connect: boolean = true,\n): EventSourceHook => {\n const optionsWithEventSource: Options = {\n ...options,\n eventSourceOptions: {\n withCredentials,\n }\n };\n const eventsRef = useRef(EMPTY_EVENT_HANDLERS);\n if (events) {\n eventsRef.current = events\n }\n\n const {\n lastMessage,\n readyState,\n getWebSocket,\n } = useWebSocket(\n url,\n optionsWithEventSource,\n connect,\n );\n\n useEffect(() => {\n if (lastMessage?.type) {\n Object.entries(eventsRef.current).forEach(([type, handler]) => {\n if (type === lastMessage.type) {\n handler(lastMessage);\n }\n });\n }\n }, [lastMessage]);\n\n return {\n lastEvent: lastMessage,\n readyState,\n getEventSource: getWebSocket,\n };\n}\n","import { useMemo } from 'react'\nimport { useWebSocket } from './use-websocket'\nimport { DEFAULT_OPTIONS } from './constants'\nimport { JsonValue, Options, WebSocketHook } from './types';\n\nexport interface SocketIOMessageData {\n type: string,\n payload: JsonValue | null,\n}\n\nconst emptyEvent: SocketIOMessageData = {\n type: 'empty',\n payload: null,\n}\n\nconst getSocketData = (event: WebSocketEventMap['message'] | null): SocketIOMessageData => {\n if (!event || !event.data) {\n return emptyEvent\n }\n\n const match = event.data.match(/\\[.*]/)\n\n if (!match) {\n return emptyEvent\n }\n\n const data = JSON.parse(match)\n\n if (!Array.isArray(data) || !data[1]) {\n return emptyEvent\n }\n\n return {\n type: data[0],\n payload: data[1],\n }\n}\n\nexport const useSocketIO = (\n url: string | (() => string | Promise) | null,\n options: Options = DEFAULT_OPTIONS,\n connect: boolean = true,\n): WebSocketHook => {\n const optionsWithSocketIO = useMemo(() => ({\n ...options,\n fromSocketIO: true,\n }), [])\n\n const {\n sendMessage,\n sendJsonMessage,\n lastMessage,\n readyState,\n getWebSocket,\n } = useWebSocket(\n\n url,\n optionsWithSocketIO,\n connect,\n );\n\n const socketIOLastMessage = useMemo(() =>\n getSocketData(lastMessage), [lastMessage]);\n\n return {\n sendMessage,\n sendJsonMessage,\n lastMessage: socketIOLastMessage,\n lastJsonMessage: socketIOLastMessage,\n readyState,\n getWebSocket,\n };\n}\n","import { useEffect, useRef, useState, useCallback, useMemo } from 'react';\nimport { flushSync } from 'react-dom';\nimport { DEFAULT_OPTIONS, isEventSourceSupported, ReadyState, UNPARSABLE_JSON_OBJECT } from './constants';\nimport { createOrJoinSocket } from './create-or-join';\nimport { getUrl } from './get-url';\nimport websocketWrapper from './proxy';\nimport {\n Options,\n ReadyStateState,\n SendMessage,\n SendJsonMessage,\n WebSocketMessage,\n WebSocketHook,\n WebSocketLike,\n JsonValue,\n} from './types';\nimport { assertIsWebSocket } from './util';\n\nexport const useWebSocket = (\n url: string | (() => string | Promise) | null,\n options: Options = DEFAULT_OPTIONS,\n connect: boolean = true,\n): WebSocketHook => {\n const [lastMessage, setLastMessage] = useState(null);\n const [readyState, setReadyState] = useState({});\n const lastJsonMessage: T = useMemo(() => {\n if (lastMessage) {\n try {\n return JSON.parse(lastMessage.data);\n } catch (e) {\n return UNPARSABLE_JSON_OBJECT;\n }\n }\n return null; \n },[lastMessage]);\n const convertedUrl = useRef(null);\n const webSocketRef = useRef(null);\n const startRef = useRef<() => void>(() => void 0);\n const reconnectCount = useRef(0);\n const messageQueue = useRef([]);\n const webSocketProxy = useRef(null);\n const optionsCache = useRef(options);\n optionsCache.current = options;\n\n const readyStateFromUrl: ReadyState =\n convertedUrl.current && readyState[convertedUrl.current] !== undefined ?\n readyState[convertedUrl.current] :\n url !== null && connect === true ?\n ReadyState.CONNECTING :\n ReadyState.UNINSTANTIATED;\n\n const stringifiedQueryParams = options.queryParams ? JSON.stringify(options.queryParams) : null;\n\n const sendMessage: SendMessage = useCallback((message, keep = true) => {\n if (isEventSourceSupported && webSocketRef.current instanceof EventSource) {\n console.warn('Unable to send a message from an eventSource');\n return;\n }\n \n if (webSocketRef.current?.readyState === ReadyState.OPEN) {\n assertIsWebSocket(webSocketRef.current, optionsCache.current.skipAssert);\n webSocketRef.current.send(message);\n } else if (keep) {\n messageQueue.current.push(message);\n }\n }, []);\n\n const sendJsonMessage: SendJsonMessage = useCallback((message, keep = true) => {\n sendMessage(JSON.stringify(message), keep);\n }, [sendMessage]);\n \n const getWebSocket = useCallback(() => {\n if (optionsCache.current.share !== true || (isEventSourceSupported && webSocketRef.current instanceof EventSource)) {\n return webSocketRef.current;\n }\n\n if (webSocketProxy.current === null && webSocketRef.current) {\n assertIsWebSocket(webSocketRef.current, optionsCache.current.skipAssert);\n webSocketProxy.current = websocketWrapper(webSocketRef.current, startRef);\n }\n\n return webSocketProxy.current;\n }, []);\n\n useEffect(() => {\n if (url !== null && connect === true) {\n let removeListeners: () => void;\n let expectClose = false;\n let createOrJoin = true;\n\n const start = async () => {\n convertedUrl.current = await getUrl(url, optionsCache);\n\n const protectedSetLastMessage = (message: WebSocketEventMap['message']) => {\n if (!expectClose) {\n flushSync(() => setLastMessage(message));\n }\n };\n \n const protectedSetReadyState = (state: ReadyState) => {\n if (!expectClose) {\n flushSync(() => setReadyState(prev => ({\n ...prev,\n ...(convertedUrl.current && {[convertedUrl.current]: state}),\n })));\n }\n };\n\n if(createOrJoin) {\n removeListeners = createOrJoinSocket(\n webSocketRef,\n convertedUrl.current,\n protectedSetReadyState,\n optionsCache,\n protectedSetLastMessage,\n startRef,\n reconnectCount,\n sendMessage,\n );\n }\n };\n\n startRef.current = () => {\n if (!expectClose) {\n if (webSocketProxy.current) webSocketProxy.current = null;\n removeListeners?.();\n start();\n }\n };\n \n start();\n return () => {\n expectClose = true;\n createOrJoin = false;\n if (webSocketProxy.current) webSocketProxy.current = null;\n removeListeners?.();\n setLastMessage(null);\n };\n } else if (url === null || connect === false) {\n reconnectCount.current = 0; // reset reconnection attempts\n setReadyState(prev => ({\n ...prev,\n ...(convertedUrl.current && {[convertedUrl.current]: ReadyState.CLOSED}),\n }));\n }\n }, [url, connect, stringifiedQueryParams, sendMessage]);\n\n useEffect(() => {\n if (readyStateFromUrl === ReadyState.OPEN) {\n messageQueue.current.splice(0).forEach(message => {\n sendMessage(message);\n });\n }\n }, [readyStateFromUrl]);\n\n return {\n sendMessage,\n sendJsonMessage,\n lastMessage,\n lastJsonMessage,\n readyState: readyStateFromUrl,\n getWebSocket,\n };\n};\n","import { WebSocketLike } from './types';\nimport { resetWebSockets } from './globals';\nimport { resetSubscribers } from './manage-subscribers';\n\nexport function assertIsWebSocket (\n webSocketInstance: WebSocketLike,\n skip?: boolean,\n): asserts webSocketInstance is WebSocket {\n if (!skip && webSocketInstance instanceof WebSocket === false) throw new Error('');\n};\n\n\nexport function resetGlobalState (url?: string): void {\n resetSubscribers(url);\n resetWebSockets(url);\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","/**\n * Copyright (c) 2014-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\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\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\t// no module.id needed\n\t\t// no module.loaded needed\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// 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 = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _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}","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\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\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","import { createContext, useState } from \"react\"\n\nconst AuthContext = createContext({})\n\nexport const AuthProvider = ({ children }) => {\n const [auth, setAuth] = useState({})\n // console.log(\"Ran AuthProvider with auth value\" + JSON.stringify(auth));\n return (\n \n {children}\n \n )\n}\n\nexport default AuthContext\n","import { createContext, useState } from \"react\"\n\nconst ProfilesContext = createContext({})\n\nexport const ProfilesProvider = ({ children }) => {\n const [profiles, setProfiles] = useState()\n // console.log(\"Ran ProfilesProvider with Profiles value\" + JSON.stringify(Profiles));\n return (\n \n {children}\n \n )\n}\n\nexport default ProfilesContext\n","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = [\"to\", \"target\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 _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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); 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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : 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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } 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 { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : 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\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink = /*#__PURE__*/function (_Component) {\n _inherits(OutboundLink, _Component);\n\n var _super = _createSuper(OutboundLink);\n\n function OutboundLink() {\n var _this;\n\n _classCallCheck(this, OutboundLink);\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), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n target = _this$props2.target,\n oldProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var props = _objectSpread(_objectSpread({}, oldProps), {}, {\n target: target,\n href: href,\n onClick: this.handleClick\n });\n\n if (target === NEWTAB) {\n props.rel = \"\".concat(props.rel ? props.rel : '', \" noopener noreferrer\").trim();\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return /*#__PURE__*/React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\nexport { OutboundLink as default };\nOutboundLink.propTypes = {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n};\nOutboundLink.defaultProps = {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n};","import warn from './console/warn';\nimport mightBeEmail from './mightBeEmail';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function redactEmail(string) {\n if (mightBeEmail(string)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n return string;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s && s.toString().replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i; // test\n\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","var isLoaded = false;\nexport default function (options) {\n if (isLoaded) return;\n isLoaded = true;\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n }\n\n var onerror = options && options.onerror; // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n a.onerror = onerror;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","var _excluded = [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"];\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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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 _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\nvar _redactEmail = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase, _redactEmail);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.redactEmail === false) {\n _redactEmail = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function addTrackers(configsOrTrackingId, options) {\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n addTrackers(configsOrTrackingId, options);\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log(\"called ga('arguments');\");\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log(\"called ga('set', fieldsObject);\");\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log(\"called ga('send', fieldObject);\");\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {{action: string, category: string}} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, _excluded);\n\n var trackerNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n if (args.length === 1) {\n payload = args[0];\n } else {\n actionType = args[0];\n payload = args[1];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","import redactEmail from './redactEmail';\nimport toTitleCase from './toTitleCase';\nexport default function format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || '';\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nvar initialize = Defaults.initialize;\nexport { initialize };\nvar addTrackers = Defaults.addTrackers;\nexport { addTrackers };\nvar ga = Defaults.ga;\nexport { ga };\nvar set = Defaults.set;\nexport { set };\nvar send = Defaults.send;\nexport { send };\nvar pageview = Defaults.pageview;\nexport { pageview };\nvar modalview = Defaults.modalview;\nexport { modalview };\nvar timing = Defaults.timing;\nexport { timing };\nvar event = Defaults.event;\nexport { event };\nvar exception = Defaults.exception;\nexport { exception };\nvar plugin = Defaults.plugin;\nexport { plugin };\nvar outboundLink = Defaults.outboundLink;\nexport { outboundLink };\nvar testModeAPI = Defaults.testModeAPI;\nexport { testModeAPI };\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread(_objectSpread({}, Defaults), {}, {\n OutboundLink: OutboundLink\n});","import { useContext } from \"react\"\nimport AuthContext from \"../context/AuthProvider\"\n\nconst useAuth = () => {\n return useContext(AuthContext)\n}\n\nexport default useAuth\n","import { useLocation, Navigate, Outlet } from \"react-router-dom\"\nimport useAuth from \"../hooks/useAuth\"\n\nconst RequireAuth = ({ allowedRoles }) => {\n const { auth } = useAuth()\n const location = useLocation()\n\n return auth?.roles?.find((role) => allowedRoles?.includes(role)) ? (\n \n ) : auth?.user ? (\n \n ) : (\n \n )\n}\n\nexport default RequireAuth\n","import { Outlet } from \"react-router-dom\"\n\nconst Layout = () => {\n return (\n
\n \n
\n )\n}\n\nexport default Layout\n","import { useContext } from \"react\"\nimport ProfilesContext from \"../context/ProfilesProvider\"\n\nconst useProfiles = () => {\n return useContext(ProfilesContext)\n}\n\nexport default useProfiles\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","var prefix = \"fas\";\nvar fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z\"]\n};\nvar fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [320, 512, [], \"32\", \"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"]\n};\nvar fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [448, 512, [], \"33\", \"M64 64c0-17.7 14.3-32 32-32H336c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L226.3 208H248c75.1 0 136 60.9 136 136s-60.9 136-136 136H169.4c-42.4 0-81.2-24-100.2-61.9l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H248c39.8 0 72-32.2 72-72s-32.2-72-72-72H144c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L253.7 96H96C78.3 96 64 81.7 64 64z\"]\n};\nvar fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z\"]\n};\nvar fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"]\n};\nvar fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [320, 512, [], \"36\", \"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM64 320c0-53 43-96 96-96s96 43 96 96s-43 96-96 96s-96-43-96-96z\"]\n};\nvar fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [320, 512, [], \"39\", \"M64 192c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"]\n};\nvar faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [640, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM384 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z\"]\n};\nvar faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H160 32zm470.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [640, 512, [\"user-times\"], \"f235\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faCommentAlt = faMessage;\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M144 80c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M473 7c-9.4-9.4-24.6-9.4-33.9 0l-87 87L313 55c-6.9-6.9-17.2-8.9-26.2-5.2S272 62.3 272 72V216c0 13.3 10.7 24 24 24H440c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-39-39 87-87c9.4-9.4 9.4-24.6 0-33.9L473 7zM216 272H72c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39L7 439c-9.4 9.4-9.4 24.6 0 33.9l32 32c9.4 9.4 24.6 9.4 33.9 0l87-87 39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V296c0-13.3-10.7-24-24-24z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [576, 512, [], \"e4e9\", \"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z\"]\n};\nvar faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z\"]\n};\nvar faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [384, 512, [], \"e4d9\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [640, 512, [], \"e4d1\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM492.7 300.7c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [640, 512, [], \"e4c2\", \"M64 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C46.3 32 32 46.3 32 64s14.3 32 32 32zM41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 237.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L448 237.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [\"sort-desc\"], \"f0dd\", \"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"]\n};\nvar faSortDesc = faSortDown;\nvar faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [576, 512, [], \"f52b\", \"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480v32h32 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z\"]\n};\nvar faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96C43 32 0 75 0 128V384c0 53 43 96 96 96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32h64zM504.5 273.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32H320v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [9883], \"f5d2\", \"M258.9 412.3c-16.7 33.8-31 35.7-34.9 35.7s-18.1-1.9-34.9-35.7c11.4-3.9 23.1-8.4 34.9-13.5c11.8 5.1 23.4 9.7 34.9 13.5zM252.8 312c-9.7 5.8-19.3 11.2-28.8 16c-9.4-4.8-19-10.2-28.8-16c-12.1-7.3-23.6-14.8-34.2-22.4c-.7-10.8-1-22-1-33.6s.4-22.7 1-33.6c10.6-7.6 22.1-15.1 34.2-22.4c9.7-5.8 19.3-11.2 28.8-16c9.4 4.8 19 10.2 28.8 16c12.1 7.3 23.6 14.8 34.2 22.4c.7 10.8 1 22 1 33.6s-.4 22.7-1 33.6c-10.6 7.6-22.1 15.1-34.2 22.4zm184.8 72c20.7-37.1 9.4-82.8-23.6-128c33-45.2 44.3-90.9 23.6-128c-20.2-36.3-62.5-49.3-115.2-43.2C300.4 32.7 266.8 0 224 0s-76.4 32.7-98.4 84.8c-52.7-6.1-95 6.8-115.2 43.2C-10.3 165.1 1 210.8 34 256C1 301.2-10.3 346.9 10.4 384c20.2 36.3 62.5 49.3 115.2 43.2c22 52.1 55.7 84.8 98.4 84.8s76.4-32.7 98.4-84.8c52.7 6.1 95-6.8 115.2-43.2zm-67.8-79.2c18.9 30.2 14.2 44 11.9 48.1c-1.6 2.9-8.4 13-40.2 11.7c2.8-13.1 5-26.9 6.7-41.2c7.6-6.1 14.8-12.3 21.6-18.6zm11.9-145.7c2.3 4.2 7 17.9-11.9 48.1c-6.8-6.3-14-12.5-21.6-18.6c-1.7-14.3-3.9-28-6.7-41.2c31.8-1.4 38.6 8.7 40.2 11.7zM224 64c3.9 0 18.1 1.9 34.9 35.7c-11.4 3.9-23.1 8.4-34.9 13.5c-11.8-5.1-23.4-9.7-34.9-13.5C205.9 65.9 220.1 64 224 64zM106.5 147.5c-2.8 13.1-5 26.9-6.7 41.2c-7.6 6.1-14.8 12.3-21.6 18.6C59.4 177 64 163.3 66.3 159.1c1.6-2.9 8.4-13 40.2-11.7zM66.3 352.9c-2.3-4.2-7-17.9 11.9-48.1c6.8 6.3 14 12.5 21.6 18.6c1.7 14.2 3.9 28 6.7 41.2c-31.8 1.4-38.6-8.7-40.2-11.7zM224 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM416 32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [576, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M532.3 7.3C539.7 13.3 544 22.4 544 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L384 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM106.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L245.3 304H272c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48h26.7zM224 408c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM510.7 278.3L472.3 368H528c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L423.7 400H368c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L51.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [640, 512, [\"microphone-alt-slash\"], \"f539\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [640, 512, [], \"e4c9\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [448, 512, [], \"e06a\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256C48 141.1 141.1 48 256 48c69.3 0 130.6 33.8 168.5 86c7.8 10.7 22.8 13.1 33.5 5.3s13.1-22.8 5.3-33.5C416.8 41.7 341.3 0 256 0C114.6 0 0 114.6 0 256v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8c0-18.1-1.9-35.8-5.5-52.9zM222.1 128.2c10.8-2.9 22.1-4.4 33.9-4.4c73 0 132.2 59.2 132.2 132.2c0 31.1-1.9 62.4-3.9 86c-1 11.8-2 21.6-2.7 28.4c-.4 3.4-.7 6.1-.9 7.9l-.2 2-.1 .5 0 .1 0 0 0 0c-1.6 13.2 7.7 25.1 20.8 26.8s25.1-7.7 26.8-20.8l-23.8-3c23.8 3 23.8 3 23.8 3l0 0 0 0 0 0 0-.2 .1-.6 .3-2.2c.2-1.9 .5-4.8 .9-8.3c.8-7.2 1.8-17.4 2.8-29.6c2-24.4 4.1-57.1 4.1-90c0-99.5-80.7-180.2-180.2-180.2c-15.9 0-31.4 2.1-46.2 6c-12.8 3.4-20.5 16.5-17.1 29.3s16.5 20.5 29.3 17.1zm-74.5 52.1c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9C87.9 182 75.8 217.6 75.8 256c0 30.1-3.8 58.6-7.6 79.7c-1.9 10.5-3.8 19.1-5.2 24.9c-.7 2.9-1.3 5.2-1.7 6.7c-.2 .7-.3 1.3-.4 1.6l-.1 .4 0 .1 0 0c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L83.8 376c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 0-.2 .2-.6c.1-.5 .3-1.2 .6-2.1c.5-1.8 1.2-4.4 1.9-7.7c1.6-6.6 3.7-16.1 5.8-27.6c4.2-22.9 8.4-54.4 8.4-88.3c0-28.2 8.8-54.3 23.8-75.7zM256 200c30.9 0 56 25.1 56 56c0 47.1-2.7 86.3-5.5 113.6c-1.4 13.7-2.7 24.3-3.7 31.6c-.5 3.6-.9 6.3-1.2 8.1c-.1 .9-.2 1.6-.3 2l-.1 .5 0 .1 0 0 0 0 0 0c-2.3 13.1 6.5 25.5 19.5 27.8s25.5-6.4 27.8-19.5L324.8 416c23.6 4.1 23.6 4.1 23.6 4.1l0 0 0 0 0-.1 0-.2 .1-.7c.1-.6 .2-1.4 .4-2.4c.3-2.1 .8-5.1 1.3-9c1.1-7.8 2.5-19.1 4-33.4c2.9-28.7 5.7-69.5 5.7-118.4c0-57.4-46.6-104-104-104s-104 46.6-104 104c0 46.7-3.9 83.4-7.7 108.4c-1.9 12.5-3.8 21.9-5.2 28.2c-.7 3.1-1.3 5.5-1.6 6.9c-.2 .7-.3 1.3-.4 1.6l-.1 .3c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L160 408c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 .1-.2 .2-.7c.1-.5 .3-1.3 .6-2.3c.5-2 1.2-4.8 2-8.4c1.6-7.2 3.7-17.8 5.8-31.3c3-19.2 5.9-44.6 7.3-75.3c.6-12.6 .9-26 .9-40.3c0-30.9 25.1-56 56-56zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 45.4-2.6 83.4-6.3 114.5L202 478.3l0 0c-5.3 12.1 .1 26.2 12.2 31.6c12.1 5.4 26.3-.1 31.7-12.2L224 488c21.9 9.7 21.9 9.7 21.9 9.7l0 0 0 0 0-.1 .1-.3 .4-.9c.3-.8 .7-1.8 1.2-3.1c1-2.7 2.4-6.5 4-11.5c3.3-10.1 7.5-24.9 11.7-44.7C271.8 397.3 280 337.6 280 256zM225.7 370.5s0 0 0 0L256 232 225.7 370.5zm0 0c-2.7 22.5-5.9 41.3-9.2 56.6c-3.8 18.2-7.6 31.3-10.3 39.8c-1.4 4.2-2.5 7.3-3.2 9.2c-.4 .9-.6 1.6-.8 2l-.1 .4 23.6-107.9z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm64-64c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h48c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32H160C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64v88c0 22.1-17.9 40-40 40s-40-17.9-40-40V160c0-8.8-7.2-16-16-16s-16 7.2-16 16v56c0 39.8 32.2 72 72 72z\"]\n};\nvar faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-48 0c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [320, 512, [\"step-forward\"], \"f051\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z\"]\n};\nvar faStepForward = faForwardStep;\nvar faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [127937], \"f11e\", \"M32 0C46.3 0 58.4 9.4 62.5 22.3l.1 0-.1 .1 .1 .3 0-.4C89.8 11.5 128.1 0 168 0c38.8 0 74.6 9.1 105.7 17C306 25.2 332.9 32 360 32c26.8 0 52.9-6.8 73-14.1c9.9-3.6 17.9-7.2 23.4-9.8c2.7-1.3 4.8-2.4 6.2-3.1c.7-.4 1.1-.6 1.4-.8l.2-.1c9.9-5.6 22.1-5.6 31.9 .2S512 20.6 512 32V320c0 12.1-6.8 23.2-17.7 28.6L480 320c14.3 28.6 14.3 28.6 14.3 28.6l0 0 0 0-.1 0-.2 .1-.7 .4c-.6 .3-1.5 .7-2.5 1.2c-2.2 1-5.2 2.4-9 4c-7.7 3.3-18.5 7.6-31.5 11.9C424.5 374.9 388.8 384 352 384c-37 0-65.2-9.4-89-17.3l-1-.3c-24-8-43.7-14.4-70-14.4c-27.9 0-64.7 7.2-96.2 15c-12.1 3-23 6-31.8 8.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 72 32C0 14.3 14.3 0 32 0zM64 158.4c17.5-4.9 40.4-10.7 64-15.2V68.8c-15 3.3-29.3 8.1-42 13c-8.5 3.4-16 6.7-22 9.6v67zm0 80v70.8c5.1-1.4 10.6-2.8 16.2-4.2c14.3-3.6 30.8-7.3 47.8-10.4V223.1c21.9-4.2 44.4-7.1 64-7.1c5.6 0 10.9 .2 16 .7v71.9c29.5 2.2 53 10 73.3 16.8l.9 .3c2 .7 3.9 1.3 5.8 1.9v-69-1.4c19 5.9 39.1 10.8 64 10.8c5.3 0 10.7-.2 16-.6v71.9c22-2 43.9-7.6 61.9-13.6c6.8-2.3 12.9-4.6 18.1-6.6V229.2c-20.9 7.5-49.9 15.8-80 18.1v-80c30.1-2.3 59.1-10.6 80-18.1V80.5c-21.6 7.3-49.5 14.3-80 15.4v71.5c-5.3 .4-10.7 .6-16 .6c-24.9 0-45-4.9-64-10.8V86.5c-9.3-2.1-18.3-4.4-27-6.7l-3.1-.8c-17.4-4.4-33.8-8.5-49.9-11.3v69c-5.1-.4-10.4-.7-16-.7c-19.6 0-42.1 3-64 7.1v80c-23.6 4.5-46.5 10.3-64 15.2zM208 136.7v80c24.4 2.1 44.3 8.7 64.2 15.3l0 0c5.2 1.7 10.5 3.5 15.8 5.2v-80c-5.3-1.7-10.6-3.4-15.8-5.2l0 0c-19.9-6.6-39.8-13.2-64.2-15.3z\"]\n};\nvar faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faFootballBall = faFootball;\nvar faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z\"]\n};\nvar faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [448, 512, [\"angle-double-down\"], \"f103\", \"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [640, 512, [], \"e594\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"]\n};\nvar faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [640, 512, [], \"e537\", \"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 240c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zM144 336c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm392-40c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"]\n};\nvar faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [640, 512, [], \"e534\", \"M360 72c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM144 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z\"]\n};\nvar faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [512, 512, [\"beer\"], \"f0fc\", \"M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [512, 512, [], \"e477\", \"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"]\n};\nvar faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [384, 512, [\"long-arrow-up\"], \"f176\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [320, 512, [129485, \"male\"], \"f183\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z\"]\n};\nvar faMale = faPerson;\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 224H96c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H80c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8H96c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H80c-22.1 0-40-17.9-40-40V264c0-22.1 17.9-40 40-40zm72 46.4c0-25.6 20.8-46.4 46.4-46.4H216c8.8 0 16 7.2 16 16s-7.2 16-16 16H198.4c-7.9 0-14.4 6.4-14.4 14.4c0 5.2 2.8 9.9 7.2 12.5l25.4 14.5c14.4 8.3 23.4 23.6 23.4 40.3c0 25.6-20.8 46.4-46.4 46.4H168c-8.8 0-16-7.2-16-16s7.2-16 16-16h25.6c7.9 0 14.4-6.4 14.4-14.4c0-5.2-2.8-9.9-7.2-12.5l-25.4-14.5C160.9 302.4 152 287 152 270.4zM280 240v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V240c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z\"]\n};\nvar faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 400c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM384 376c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm0 32c70.7 0 128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM403 336.5c5.1-11.8-6.9-22.4-19.2-18.7C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [512, 512, [], \"f55c\", \"M192 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H334.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H192V208.5zM320 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L398.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C406 314.1 416 347.9 416 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H108.1c-17.3 0-34.2-7.1-43.8-21.5C43.9 460.1 32 423.4 32 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h16H304h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [576, 512, [], \"e4af\", \"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z\"]\n};\nvar faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [576, 512, [\"mail-bulk\"], \"f674\", \"M96 0C78.3 0 64 14.3 64 32V224h96V192c0-35.3 28.7-64 64-64H448V32c0-17.7-14.3-32-32-32H96zM224 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H544c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H224zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM32 256c-17.7 0-32 14.3-32 32v13L155.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L320 301V288c0-17.7-14.3-32-32-32H32zm288 84.8L184 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L0 340.8V480c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V340.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z\"]\n};\nvar faContactBook = faAddressBook;\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z\"]\n};\nvar faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M421.7 220.3l-11.3 11.3-22.6 22.6-205 205c-6.6 6.6-14.8 11.5-23.8 14.1L30.8 511c-8.4 2.5-17.5 .2-23.7-6.1S-1.5 489.7 1 481.2L38.7 353.1c2.6-9 7.5-17.2 14.1-23.8l205-205 22.6-22.6 11.3-11.3 33.9 33.9 62.1 62.1 33.9 33.9zM96 353.9l-9.3 9.3c-.9 .9-1.6 2.1-2 3.4l-25.3 86 86-25.3c1.3-.4 2.5-1.1 3.4-2l9.3-9.3H112c-8.8 0-16-7.2-16-16V353.9zM453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-14.5 14.5-22.6 22.6-11.3 11.3-33.9-33.9-62.1-62.1L314.3 67.7l11.3-11.3 22.6-22.6 14.5-14.5c25-25 65.5-25 90.5 0z\"]\n};\nvar faPencilAlt = faPencil;\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [9194], \"f04a\", \"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V256H416c-17.7 0-32-14.3-32-32V128H320 272zM160 88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm256 40v96h96l-96-96z\"]\n};\nvar faFileClipboard = faPaste;\nvar faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80c0-13.3-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24s24-10.7 24-24zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm328 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M101.5 64C114.6 26.7 150.2 0 192 0s77.4 26.7 90.5 64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h37.5zM224 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM160 368c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM96 392c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm64-120c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM96 296c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [640, 512, [\"truck-loading\"], \"f4de\", \"M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [512, 512, [], \"e597\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-24c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm88 32c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 396 61.3 324.1 142.7 307.6l68.5 91.4c6.4 8.5 19.2 8.5 25.6 0l68.5-91.4C386.7 324.1 448 396 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z\"]\n};\nvar faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [640, 512, [], \"e539\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [640, 512, [\"torah\"], \"f6a0\", \"M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z\"]\n};\nvar faTorah = faScrollTorah;\nvar faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [640, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M633.3 12.4c10.8 14 8.3 34.1-5.6 44.9l-144 112-72 56L403 232l28.3 36.3c3.7 4.8 4.4 11.2 1.8 16.7s-8.1 9-14.1 9.1l-48 .9L292.3 194.2l12.5-46.3c1.6-5.9 6.3-10.3 12.3-11.5s12 1.1 15.8 5.8l30.8 39.4 8.7-6.8 72-56 144-112c13.9-10.9 34.1-8.3 44.9 5.6zM269.1 476.3c-55.5 43.4-215 34.2-252.3 31.4c-5.1-.4-9.7-2.9-12.8-7s-4.5-9.1-3.6-14.1c.5-3.2 1.3-7.2 2.2-12.1c3-16.5 10.8-31.6 21.9-44.1l73.5-82.5c3.1-3.5 3.2-8.6 .4-12.3s-7.9-4.7-12-2.6L47.3 353.5c-6.3 3.3-13.4-2.7-11-9.4c14.3-39.9 32.7-76.9 55.5-94.7c57.7-45.1 175.3-35.5 175.3-35.5l78.8 100.9s-19.1 116.4-76.8 161.5zM496 512c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faArchive = faBoxArchive;\nvar faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [576, 512, [], \"e545\", \"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [576, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM352 320c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zm93.7-171.1c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM320 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM512 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM480 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.3-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 64H64V384H384V64z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"]\n};\nvar faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z\"]\n};\nvar faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72zm264-72c0-39.8-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72s72-32.2 72-72zm-240 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm192 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [576, 512, [], \"f80d\", \"M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [640, 512, [], \"e57f\", \"M520.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L521.5 72 118.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [\"legal\"], \"f0e3\", \"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"]\n};\nvar faLegal = faGavel;\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [640, 512, [\"people-arrows-left-right\"], \"e068\", \"M192 64c0 35.3-28.7 64-64 64s-64-28.7-64-64S92.7 0 128 0s64 28.7 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM576 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l24 0H376c0 13.3 10.7 24 24 24s24-10.7 24-24H400l24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 320c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM160 112c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM112 448c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCut = faScissors;\nvar faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 224c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm32-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z\"]\n};\nvar faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [576, 512, [], \"e584\", \"M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [640, 512, [\"digital-tachograph\"], \"f566\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"]\n};\nvar faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [448, 512, [], \"e139\", \"M173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2C205.1 38.5 189.5 32 173.3 32z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"]\n};\nvar faMailReply = faReply;\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [576, 512, [9770], \"f699\", \"M32 256C32 114.6 146.6 0 288 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C352.6 505.7 321 512 288 512C146.6 512 32 397.4 32 256zM407.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L293 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM453.5 163.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 56.7 24.2 76.9C640 437.9 568.7 512 480 512c-89.7 0-160-74.2-160-161.9c0-26.4 12.7-58.6 32.4-90.6c20-32.4 48.1-66.1 81.4-95.8c5.6-5 14.2-5 19.8 0zM530 433c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15z\"]\n};\nvar faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [128641], \"f533\", \"M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 304c-10.1 0-19.6-4.7-25.6-12.8L192 256 47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [640, 512, [], \"e533\", \"M184 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zM568 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm8 157.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V176c0-8.8-7.2-16-16-16H160z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [127902], \"f008\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [640, 512, [], \"f547\", \"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"]\n};\nvar faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zm32 224c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"]\n};\nvar faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [576, 512, [\"sign-out\"], \"f08b\", \"M534.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L434.7 224 224 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-53 0-96 43-96 96l0 256c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [448, 512, [\"unlock-alt\"], \"f13e\", \"M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [576, 512, [], \"f740\", \"M128 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C96.7 126.1 96 119.1 96 112C96 50.1 146.1 0 208 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H128zm-14.5 33.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM345.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"]\n};\nvar faHeadphonesSimple = {\n prefix: 'fas',\n iconName: 'headphones-simple',\n icon: [512, 512, [\"headphones-alt\"], \"f58f\", \"M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faHeadphonesAlt = faHeadphonesSimple;\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [576, 512, [], \"f0e8\", \"M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [512, 512, [\"donate\"], \"f4b9\", \"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V304c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V112c0-11.1-9-20.1-20.1-20.1zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [576, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [640, 512, [], \"e4f1\", \"M293.5 3.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C480 280 408.7 352 320 352c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM370 273c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM192 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [127988, 61725], \"f024\", \"M64 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32C0 14.3 14.3 0 32 0S64 14.3 64 32zm40.8 302.8c-3 .9-6 1.7-8.8 2.6V13.5C121.5 6.4 153 0 184 0c36.5 0 68.3 9.1 95.6 16.9l1.3 .4C309.4 25.4 333.3 32 360 32c26.8 0 52.9-6.8 73-14.1c9.9-3.6 17.9-7.2 23.4-9.8c2.7-1.3 4.8-2.4 6.2-3.1c.7-.4 1.1-.6 1.4-.8l.2-.1c9.9-5.6 22.1-5.6 31.9 .2S512 20.6 512 32V288c0 12.1-6.8 23.2-17.7 28.6L480 288c14.3 28.6 14.3 28.6 14.3 28.6l0 0 0 0-.1 0-.2 .1-.7 .4c-.6 .3-1.5 .7-2.5 1.2c-2.2 1-5.2 2.4-9 4c-7.7 3.3-18.5 7.6-31.5 11.9C424.5 342.9 388.8 352 352 352c-37 0-65.2-9.4-89-17.3l-1-.3c-24-8-43.7-14.4-70-14.4c-27.5 0-60.1 7-87.2 14.8z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zM64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104-17.9L82.9 161.3C70.7 185.6 64 212.2 64 240z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [127782], \"f743\", \"M137.9 3c-4.5-3.2-10.3-3.9-15.4-1.8s-8.8 6.7-9.7 12.2L98.7 98.7 13.4 112.8c-5.5 .9-10.1 4.6-12.2 9.7S-.2 133.4 3 137.9l50.3 70.3L3 278.5c-3.2 4.5-3.9 10.3-1.8 15.4s6.7 8.8 12.2 9.7l85.3 14.1L112.8 403c.9 5.5 4.6 10.1 9.7 12.2s10.9 1.4 15.4-1.8l55.2-39.5c-19.9-21.9-32.3-50.8-33.1-82.6c-17.6-10.2-32.2-26.1-40.6-46.3c-20.3-49 3-105.1 52-125.4c29.4-12.2 61.4-8.7 86.7 6.7c13.1-21.8 32.5-39.4 55.8-50.3L303.6 13.4c-.9-5.5-4.6-10.1-9.7-12.2S282.9-.2 278.5 3L208.2 53.3 137.9 3zM291.4 415.9c-2.5 .6-5.1 .6-7.6-.1c1.4 0 2.8 .1 4.2 .1h3.5zm-46.3-260c-17.3-12.2-40.4-15.6-61.5-6.9c-32.7 13.5-48.2 51-34.6 83.6c3.6 8.7 8.9 16.1 15.3 22.2c10.6-39.7 39.9-71.8 77.8-86.4c.8-4.3 1.8-8.4 3-12.5zM277.4 420c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm74.5-116.1c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C433.3 114.6 402.8 96 368 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H559.9c44.2 0 80-35.8 80-80z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [512, 512, [\"wheat-alt\"], \"e2cd\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"]\n};\nvar faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320 80c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm44.7 84.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [384, 512, [10033, 61545], \"2a\", \"M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [384, 512, [], \"e221\", \"M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M50.8 452.1L19.2 477.4c-2.1 1.7-4.7 2.6-7.4 2.6C5.3 480 0 474.7 0 468.2V192C0 86 86 0 192 0S384 86 384 192V468.2c0 6.5-5.3 11.8-11.8 11.8c-2.7 0-5.3-.9-7.4-2.6l-31.6-25.3c-3.3-2.7-7.5-4.1-11.8-4.1c-5.9 0-11.5 2.8-15 7.5l-37.6 50.1c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4l-38.4-51.2c-3-4-7.8-6.4-12.8-6.4s-9.8 2.4-12.8 6.4l-38.4 51.2c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L77.6 455.5c-3.6-4.7-9.1-7.5-15-7.5c-4.3 0-8.4 1.5-11.7 4.1zM160 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\"]\n};\nvar faListSquares = faList;\nvar faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H76.1l60.3 316.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H179.9l-9.1-48h317c14.3 0 26.9-9.5 30.8-23.3l54-192C578.3 52.3 563 32 541.8 32H122l-2.4-12.5C117.4 8.2 107.5 0 96 0H24zM176 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm336-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM252 160c0-11 9-20 20-20h44V96c0-11 9-20 20-20s20 9 20 20v44h44c11 0 20 9 20 20s-9 20-20 20H356v44c0 11-9 20-20 20s-20-9-20-20V180H272c-11 0-20-9-20-20z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 248c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm-24 56c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z\"]\n};\nvar faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-160c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-96c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 410 0 304C0 192 96 16 192 16s192 176 192 288c0 106-86 192-192 192zM156.5 138l0 0 0 0 0 0c5.5-6.9 4.4-17-2.5-22.5s-17-4.4-22.5 2.5L144 128c-12.5-10-12.5-10-12.5-10l0 0 0 0-.1 .1-.2 .2-.6 .8c-.5 .7-1.3 1.7-2.2 3c-1.9 2.6-4.5 6.3-7.7 11c-6.3 9.4-14.6 23-23 39.7C81.1 206.1 64 252.6 64 304c0 8.8 7.2 16 16 16s16-7.2 16-16c0-44.6 14.9-86.1 30.3-116.8c7.6-15.3 15.3-27.7 21-36.3c2.8-4.3 5.2-7.6 6.8-9.8c.8-1.1 1.4-1.9 1.8-2.4l.4-.6 .1-.1 0 0z\"]\n};\nvar faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [576, 512, [9978], \"f6bb\", \"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M371.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L600.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S549.7-4.4 531.1 9.6L294.4 187.2c-24 18-38.2 46.1-38.4 76.1L371.3 367.1zm-19.6 25.4l-116-104.4C175.9 290.3 128 339.6 128 400c0 3.9 .2 7.8 .6 11.6c1.8 17.5-10.2 36.4-27.8 36.4H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H240c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [128274], \"f023\", \"M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [512, 512, [\"hot-tub\"], \"f593\", \"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128c35.3 0 64-28.7 64-64S99.3 0 64 0S0 28.7 0 64s28.7 64 64 64z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [576, 512, [\"map-marked\"], \"f59f\", \"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [576, 512, [], \"e50e\", \"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"]\n};\nvar faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [640, 512, [], \"e4cc\", \"M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84.1 96c0-11.1-9-20.1-20.1-20.1s-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4.1c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0 0 0c-2.2-.8-4.3-1.5-6.3-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V416c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V224z\"]\n};\nvar faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.8 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z\"]\n};\nvar faEdit = faPenToSquare;\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zm-2.9 207c-6.6 18.6-24.4 32-45.3 32s-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16zM160 432c-20.9 0-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16c-6.6 18.6-24.4 32-45.3 32z\"]\n};\nvar faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [448, 512, [\"share-alt\"], \"f1e0\", \"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9H112z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M168 32c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32h8c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32h-8c0 17.7-14.3 32-32 32H200c-17.7 0-32-14.3-32-32h-8c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32l8 0zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z\"]\n};\nvar faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 96c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm200-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [576, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z\"]\n};\nvar faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M304 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM248 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M144 160c-44.2 0-80-35.8-80-80S99.8 0 144 0s80 35.8 80 80s-35.8 80-80 80zm368 0c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM416 224c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5z\"]\n};\nvar faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z\"]\n};\nvar faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z\"]\n};\nvar faHandPaper = faHand;\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [128329], \"f679\", \"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5 0-.1c-2.6-7.8-10.7-12.3-18.7-10.5C4.4 354.2-.9 361.8 .1 370L16 368C.1 370 .1 370 .1 370l0 0 0 0 0 .1 .1 .4c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.3 0 0c0 0 0 0 0 0c-1.9-7.3-8.6-12.4-16.2-12.1c-7.6 .3-13.9 5.9-15.1 13.4L336 368c-15.8-2.6-15.8-2.6-15.8-2.6l0 0 0 0 0 .1-.1 .3c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4zM280.9 66.7c-6-4-14-3.5-19.5 1.3s-7 12.7-3.7 19.2L272 80c-14.3 7.2-14.3 7.2-14.3 7.2l0 0 0 0 0 .1 .1 .2 .4 .7c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .2-.2 .1-.1 0 0 0 0c0 0 0 0-22.6-22.6l22.6 22.6c12.5-12.5 12.5-32.8 0-45.3c-12.4-12.4-32.6-12.5-45.1-.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2 0 0 0 0 0 0z\"]\n};\nvar faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96h38.4C407.9 0 448 40.1 448 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H320c-53 0-96-43-96-96zm144-8c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [128268], \"f1e6\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [512, 512, [], \"f077\", \"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faKiss = faFaceKiss;\nvar faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [640, 512, [], \"e4cb\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-16c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V416H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64-64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM352 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm64 120c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [640, 512, [], \"e51b\", \"M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z\"]\n};\nvar faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z\"]\n};\nvar faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z\"]\n};\nvar faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"]\n};\nvar faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [384, 512, [129463], \"f5c9\", \"M154.1 52.1C137.3 39.1 116.7 32 95.5 32C42.7 32 0 74.7 0 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2L80.4 460.2c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C160.2 323.7 175 312 192 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"]\n};\nvar faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [448, 512, [118], \"56\", \"M51.7 34.5c16.3-6.8 35 .9 41.8 17.2L224 364.8 354.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7l-160-384c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z\"]\n};\nvar faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [384, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M222.6 43.2l-.2 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.3 319.8c22.3-2.1 39.7-20.8 39.7-43.7c0-10-3.4-19.6-9.6-27.4l-42-52.6c-8.3-10.3-12.8-23-15-36.1C398.2 69.3 319.2 0 224 0H201.7C157 0 115.7 14.5 82.2 39.2L38.8 5.1zM0 201.7c0 44.8 18.3 91.5 46.5 127.7C56.9 342.8 64 358.8 64 375.8V480c0 17.7 14.3 32 32 32H256c17.7 0 32-14.3 32-32h64c32.8 0 59.9-24.7 63.6-56.6l-9.4-7.4H352c-17.7 0-32-14.3-32-32c0-10.5 5.1-19.9 12.9-25.7L20.8 112.4C7.5 139.3 0 169.6 0 201.7zM632 288c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm-88 72c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm64 48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [640, 512, [128657, \"ambulance\"], \"f0f9\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM112 144c0-8.8 7.2-16 16-16h48V80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240v48c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V192H128c-8.8 0-16-7.2-16-16V144z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [576, 512, [9731, 9924], \"f7d0\", \"M373.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L440 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C428.7 296.9 448 338.2 448 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H213.3c-13.9 0-27.7-4.2-37.5-13.9C146.3 469 128 428.7 128 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3l-73.6-31.5-56-24c-12.2-5.2-17.8-19.3-12.6-31.5s19.3-17.8 31.5-12.6L88 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L184.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C196 127.2 192 112.1 192 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM256 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm48 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm-16 80c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm16 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM320 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [127979], \"f549\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM256 416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H256V416zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM408 176c0 48.6-39.4 88-88 88s-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88zm-88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [320, 512, [8250], \"f105\", \"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 96c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [512, 512, [113], \"51\", \"M96 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C403.9 325.8 416 292.3 416 256c0-88.4-71.6-160-160-160S96 167.6 96 256zM376.9 444.6C342 467 300.5 480 256 480C132.3 480 32 379.7 32 256S132.3 32 256 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32c0 123.7-100.3 224-224 224S0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z\"]\n};\nvar faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V200c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM256 288c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [\"poo-bolt\"], \"f75a\", \"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 44.3-35.8 80.1-80 80.1c-1.4 0-2.8 .2-4 .5H128c-35.3 0-64 28.7-64 64c0 12.4 3.5 24 9.7 33.8C31.6 234.3 0 271.5 0 316c0 49.1 38.5 89.2 86.9 91.9c-1.8-2.9-3.4-6.1-4.5-9.4c-6-17.5-.5-36.9 13.6-48.5L238.2 233.6c15.6-12.8 37.9-12.7 53.5 .1s20.3 35.1 11.3 53.4l-26 53.2h16.3c18.1 0 34.3 11.7 40.3 29.2c4.5 13.1 2.6 27.3-4.6 38.4h27c50.8 0 92-41.2 92-92c0-44.5-31.6-81.7-73.7-90.2c6.1-9.8 9.7-21.4 9.7-33.8c0-35.3-28.7-64-64-64h-5.7c3.7-10.2 5.7-21.1 5.7-32.6c0-48.7-36.1-88.9-83.1-95.2zm34.2 259.2c-6-4.6-14.3-4.4-20.1 .4l-133.4 112c-5.2 4.3-7 11.4-4.7 17.7s8.3 10.5 15 10.5h54.7l-42.5 89.1c-3.2 6.8-1.3 14.9 4.7 19.5s14.3 4.4 20.1-.4l133.4-112c5.1-4.3 7-11.4 4.7-17.7s-8.3-10.5-15-10.5H233.3l42.5-89.1c3.2-6.8 1.3-14.9-4.7-19.5z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-186 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [576, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [576, 512, [127958], \"f5ca\", \"M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"]\n};\nvar faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192s192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 64c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm32-144c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z\"]\n};\nvar faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [384, 512, [\"file-medical-alt\"], \"f478\", \"M64 0C28.7 0 0 28.7 0 64V288H112c6.1 0 11.6 3.4 14.3 8.8L144 332.2l49.7-99.4c2.7-5.4 8.2-8.8 14.3-8.8s11.6 3.4 14.3 8.8L249.9 288H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8L208 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L102.1 320H0V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [512, 512, [], \"f7b9\", \"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 304c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [448, 512, [], \"e473\", \"M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [512, 512, [9894], \"f229\", \"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM320 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z\"]\n};\nvar faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm-16 80c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM400 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"]\n};\nvar faPenAlt = faPenClip;\nvar faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [640, 512, [], \"e4ca\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"]\n};\nvar faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z\"]\n};\nvar faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [640, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zm40-176c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 21 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [128333], \"f69b\", \"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"]\n};\nvar faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [320, 512, [], \"e548\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm8 256V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"]\n};\nvar faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [640, 512, [], \"e563\", \"M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [448, 512, [], \"f124\", \"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"]\n};\nvar faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 384c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [576, 512, [], \"f53a\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z\"]\n};\nvar faAreaChart = faChartArea;\nvar faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z\"]\n};\nvar faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [576, 512, [], \"e540\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faCancel = faBan;\nvar faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [512, 512, [], \"e0d8\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM384 256c0 8.8-7.2 16-16 16H291.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L307 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L185 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C193.4 172.7 224 160 256 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM128 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L205 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L327 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C318.6 403.3 288 416 256 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z\"]\n};\nvar faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [512, 512, [\"air-freshener\"], \"f5d0\", \"M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"]\n};\nvar faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M176 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S64 114.1 64 176s50.1 112 112 112zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"]\n};\nvar faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [320, 512, [\"mouse-pointer\"], \"f245\", \"M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32H24C10.7 32 0 42.7 0 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79L81 335 41 295c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312V456c0 13.3 10.7 24 24 24H168c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H424c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H280c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512c70.7 0 128-57.3 128-128s-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M336 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM141.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L153.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L254 299l30.9-82.4 5.1 12.3C305 264.7 339.9 288 378.7 288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H378.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L73.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM107.2 352H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L173 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L107.2 352z\"]\n};\nvar faRunning = faPersonRunning;\nvar faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [320, 512, [], \"e527\", \"M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [128375], \"f717\", \"M190.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L113.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4-80.4-26.8c-2.4-.8-4.3-2.7-5.1-5.1L78.8 128.4C74.6 115.8 61 109 48.4 113.2S29 131 33.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L148.1 256 87.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L33.2 368.4C29 381 35.8 394.6 48.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8-57.4 57.4c-15.6 15.6-20.6 39-12.7 59.7l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L192 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L462.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L427.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L430.4 15.4C425.6 3 411.8-3.2 399.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L368 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C226.6 100.7 208 128.2 208 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"]\n};\nvar faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352H96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H256h64H448h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1V320v32H256V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8V96 32zm64 448v32H256V480h64v32H448V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H448 320 256 128 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z\"]\n};\nvar faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v16H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H112c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v32H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H152c-8.9 0-17 4.9-21.2 12.7s-3.7 17.3 1.2 24.6l32 48C168.5 412 176 416 184 416H328c8 0 15.5-4 20-10.7l32-48c4.9-7.4 5.4-16.8 1.2-24.6S368.9 320 360 320H272V288h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V224H400c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V160h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 384c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm112-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [640, 512, [], \"f891\", \"M144 0c-12.9 0-24.6 7.8-29.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L98.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C168.6 7.8 156.9 0 144 0zm18.7 160H125.3L144 115.2 162.7 160zM288 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H320c-17.7 0-32 14.3-32 32zm96 64H352V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H352V160zM598.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L384 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"]\n};\nvar faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z\"]\n};\nvar faMouse = faComputerMouse;\nvar faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [640, 512, [\"store-alt-slash\"], \"e070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM344 152c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm96-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zM344 408c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm104-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [640, 512, [], \"e4a9\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z\"]\n};\nvar faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M192 352V48c0-26.5 21.5-48 48-48H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H192zm16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"]\n};\nvar faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [512, 512, [], \"e53a\", \"M256 160c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM468.8 382.8L405.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L59.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2l67.1-100.6c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM352 332c0-24.3-19.7-44-44-44s-44 19.7-44 44s19.7 44 44 44s44-19.7 44-44z\"]\n};\nvar faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M352 96h64c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c53 0 96-43 96-96V128c0-53-43-96-96-96H352c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-7.5 177.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H160v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192c0-70.7-57.3-128-128-128S96 121.3 96 192s57.3 128 128 128s128-57.3 128-128zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [640, 512, [\"people-carry\"], \"f4ce\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM144 241.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm77.9 252.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 64c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M288 96c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm58.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z\"]\n};\nvar faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z\"]\n};\nvar faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [512, 512, [\"weight\"], \"f496\", \"M384 176c0 70.7-57.3 128-128 128s-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128zm7.8-112C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"]\n};\nvar faWeight = faWeightScale;\nvar faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [640, 512, [128101, \"user-friends\"], \"f500\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [576, 512, [\"sort-alpha-up\"], \"f15e\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M32 391.6V416H352V224c0-106-86-192-192-192H12.9C5.8 32 0 37.8 0 44.9c0 2 .5 4 1.4 5.8L16 80 9.4 86.6c-6 6-9.4 14.1-9.4 22.6V242.3c0 13.1 8 24.9 20.1 29.7l46.5 18.6c8.5 3.4 18 3 26.2-1.1l6.6-3.3c8-4 14-11.2 16.5-19.8l8.3-28.9c2.5-8.6 8.4-15.8 16.5-19.8L160 208v40.4c0 24.2-13.7 46.4-35.4 57.2L67.4 334.3C45.7 345.2 32 367.3 32 391.6zM72 148c0 11-9 20-20 20s-20-9-20-20s9-20 20-20s20 9 20 20zM352 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [576, 512, [], \"f193\", \"M224 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM152.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C75.1 225.1 32 283.5 32 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C272 440 234.8 464 192 464c-61.9 0-112-50.1-112-112c0-47.9 30.1-88.8 72.5-104.8zM291.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L434 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H314.2l-9.6-48H368c17.7 0 32-14.3 32-32s-14.3-32-32-32H291.8z\"]\n};\nvar faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V177.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zM384 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [320, 512, [128694, \"walking\"], \"f554\", \"M256 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"]\n};\nvar faWalking = faPersonWalking;\nvar faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z\"]\n};\nvar faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zM176 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faProcedures = faBedPulse;\nvar faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [640, 512, [\"space-shuttle\"], \"f197\", \"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"]\n};\nvar faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [127961], \"f64f\", \"M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [127798], \"f816\", \"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [128275], \"f09c\", \"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z\"]\n};\nvar faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.1 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3L365.5 384H160z\"]\n};\nvar faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [320, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M320 128V49.1L186.6 .3c-11.4-4.2-24 .9-29.5 11.7L71.8 181.1c-30.8 61-8 133.8 48.1 167.4l-28 77.4L32.1 403.9C19.7 399.4 6 405.8 1.4 418.3s1.9 26.3 14.3 30.8l164.6 60.3c12.4 4.5 26.1-1.9 30.6-14.4s-1.9-26.3-14.3-30.8l-59.9-21.9 28-77.3c68.1 11.6 135.7-32.8 150.1-103.6l5.1-24.8 5.1 24.8c14.5 70.8 82 115.2 150.1 103.6l28 77.3-59.9 21.9c-12.4 4.5-18.8 18.3-14.3 30.8s18.2 18.9 30.6 14.4l164.6-60.3c12.4-4.5 18.8-18.3 14.3-30.8s-18.2-18.9-30.6-14.4l-59.9 21.9-28-77.4c56.1-33.6 78.8-106.4 48.1-167.4L482.9 12C477.4 1.1 464.7-3.9 453.4 .3L320 49.1V128h0zm-35.7 44.4L153.9 124.6l36.3-71.9L300.6 93.1l-16.2 79.3zm71.3 0L339.4 93.1 449.8 52.7l36.3 71.9L355.7 172.4z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H48C21.5 64 0 85.5 0 112V464c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-80 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z\"]\n};\nvar faBathtub = faBath;\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"]\n};\nvar faUserEdit = faUserPen;\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M256 496c132.5 0 240-107.5 240-240S388.5 16 256 16S16 123.5 16 256s107.5 240 240 240zM235.3 76.7L256 97.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L278.6 120 324 165.4 357.4 132l-16.7-16.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L380 109.4l8.7-8.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-8.7 8.7 16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L380 154.6 346.6 188 392 233.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L414.6 256l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L392 278.6 346.6 324 380 357.4l16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L402.6 380l8.7 8.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-8.7-8.7-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L357.4 380 324 346.6 278.6 392l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L256 414.6l-20.7 20.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L233.4 392 188 346.6 154.6 380l16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L132 402.6l-8.7 8.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l8.7-8.7L92.7 363.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L132 357.4 165.4 324 120 278.6 99.3 299.3c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L97.4 256 76.7 235.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L120 233.4 165.4 188 132 154.6l-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L109.4 132l-8.7-8.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l8.7 8.7 16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L154.6 132 188 165.4 233.4 120 212.7 99.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zM210.6 188L256 233.4 301.4 188 256 142.6 210.6 188zm68 68L324 301.4 369.4 256 324 210.6 278.6 256zM256 278.6L210.6 324 256 369.4 301.4 324 256 278.6zM233.4 256L188 210.6 142.6 256 188 301.4 233.4 256z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z\"]\n};\nvar faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [384, 512, [], \"e4d7\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"]\n};\nvar faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"]\n};\nvar faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-96 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [576, 512, [\"map-marked-alt\"], \"f5a0\", \"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [9749], \"f7b6\", \"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M312 56c0-30.9-25.1-56-56-56s-56 25.1-56 56s25.1 56 56 56s56-25.1 56-56zM64 480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM34 169.4L9.2 185.8C3.5 189.7 0 196.2 0 203.1c0 3.2 .7 6.4 2.2 9.3L104 416H408L509.8 212.4c1.4-2.9 2.2-6.1 2.2-9.3c0-6.9-3.5-13.4-9.2-17.3L478 169.4c-8.2-5.4-19-4.4-26 2.6c-12.9 12.9-30.9 21.9-48 15.5c-17.9-6.7-28.1-20.1-32.8-35.8C367.5 139 357.3 128 344 128H328c-13.3 0-23.9 11.2-29.6 23.2C292.6 163.4 280.6 176 256 176s-36.6-12.6-42.4-24.8c-5.7-12-16.3-23.2-29.6-23.2H168c-13.3 0-23.5 11-27.3 23.7c-4.7 15.6-14.9 29.1-32.8 35.8c-17 6.4-35.1-2.7-48-15.5c-6.9-6.9-17.8-8-25.9-2.6z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z\"]\n};\nvar faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [640, 512, [], \"e4d2\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M208 368c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [576, 512, [], \"e4e4\", \"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 160c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM128 464c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM357.1 157.5c-.3 .7-.7 1.5-1.1 2.2l-17.8 30.9c-11-12.6-27.4-19.8-44.4-19.1l20.7-35.8c6.6-11.5 21.3-15.4 32.8-8.8c10.8 6.2 14.9 19.5 9.9 30.6zm-173.6 47C112.3 227.2 64 293.3 64 368c0 1.5 0 3 .1 4.5C24.3 346.9 0 302.8 0 255.1V131.5c0-13.3 10.7-24 24-24s24 10.7 24 24l0 81.7L164.2 12c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-64 110.9c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9l80-138.6c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-80 138.6c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9L275 76c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-44 76.2-89.1 28.3zM448 483.5c0 12.4-9.4 22.6-21.5 23.9c-.8 .1-1.6 .1-2.5 .1H223.3 216c-22.1 0-42.9-6-60.7-16.5c3-8.5 4.7-17.6 4.7-27c0-38.7-27.5-71-64-78.4c0-.6 0-1.1 0-1.7c0-1.2-.1-2.5-.1-3.7c0-68 44-128.3 108.9-148.9l83.9-26.7c12.6-4 26.1 3 30.1 15.6s-3 26.1-15.6 30.1l-53.8 17.1H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8h96c13.3 0 24 10.7 24 24z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [128646], \"f238\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 384c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [640, 512, [\"low-vision\"], \"f2a8\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 112c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [576, 512, [], \"e445\", \"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [9961], \"f6a1\", \"M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V0L440.6 23.8C424.3 29.2 407.2 32 390 32H122c-17.2 0-34.3-2.8-50.6-8.2L0 0V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z\"]\n};\nvar faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM592 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [129691], \"f54a\", \"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"]\n};\nvar faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64z\"]\n};\nvar faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [576, 512, [], \"e515\", \"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z\"]\n};\nvar faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [576, 512, [], \"e4b5\", \"M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z\"]\n};\nvar faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [512, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z\"]\n};\nvar faColumns = faTableColumns;\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M0 224.2c0-22.2 3.2-43.6 9.2-63.9l227 165.1C228.5 337.8 224 352.4 224 368V512H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm258.6 77.9L21 129.3C56.7 53 134.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 4.1-.6 8.1-1.6 11.9H304c-16.9 0-32.5 5.2-45.4 14.1zM352 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM256 512V368c0-26.5 21.5-48 48-48H512l-16 48H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.3l-10.7 32H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H464l-1.4 4.2c-8.7 26.1-33.2 43.8-60.7 43.8H256z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM96 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.6 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [640, 512, [\"dolly-box\"], \"f472\", \"M32 32C32 14.3 46.3 0 64 0h72.9c27.5 0 52 17.6 60.7 43.8L289.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L384 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L136.9 64H64C46.3 64 32 49.7 32 32zM276.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L343 79.4l19.8 60.9 60.9-19.8L403.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L366.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L276.8 134.5z\"]\n};\nvar faDollyBox = faDolly;\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [128684], \"f48d\", \"M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z\"]\n};\nvar faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm216 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm-56-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM200 424c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [512, 512, [187, \"angle-double-right\"], \"f101\", \"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"]\n};\nvar faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z\"]\n};\nvar faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"]\n};\nvar faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26H388.7c14.2 0 25.4 12.3 21.7 26C392 382 329.8 432 256 432s-136-50-154.4-118zm116-101.2l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.5 169.9c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z\"]\n};\nvar faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v44.5c0 17.4-4.7 34.5-13.7 49.4L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1C136.1 390 144 361.5 144 332.5V288H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM256 144c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM240 248c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0zM209.1 359.2l-18.6-31c-6.4-10.7 1.3-24.2 13.7-24.2H224h19.7c12.4 0 20.1 13.6 13.7 24.2l-18.6 31 33.4 123.9 39.5-161.2c77.2 12 136.3 78.8 136.3 159.4c0 17-13.8 30.7-30.7 30.7H265.1 182.9 30.7C13.8 512 0 498.2 0 481.3c0-80.6 59.1-147.4 136.3-159.4l39.5 161.2 33.4-123.9z\"]\n};\nvar faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [384, 512, [\"long-arrow-down\"], \"f175\", \"M224 402.7V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V402.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [640, 512, [], \"e57e\", \"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h76.8L384 320V448z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.3-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M117.2 160.4L224 64.3V64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144C3.9 190.3 0 198.9 0 208s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2v-.3L117.2 255.6C103.7 243.4 96 226.1 96 208s7.7-35.4 21.2-47.6zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z\"]\n};\nvar faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [448, 512, [\"skating\"], \"f7c5\", \"M448 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM408.8 335.4c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM344 304c0 48.6-39.4 88-88 88s-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88z\"]\n};\nvar faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [\"arrow-right-to-file\"], \"f56f\", \"M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"]\n};\nvar faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm208-16c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [320, 512, [9208], \"f04c\", \"M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z\"]\n};\nvar faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [640, 512, [], \"e507\", \"M471.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C433.2 261.3 448 236.4 448 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C248.3 46.6 229.9 32 208 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L471.7 401.9zM512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM100.3 87C75.1 61.8 32 79.7 32 115.3V432c0 44.2 35.8 80 80 80H428.7c35.6 0 53.5-43.1 28.3-68.3L100.3 87z\"]\n};\nvar faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [128163], \"f1e2\", \"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zm396.3 211c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3L435.1 416H588.9L514.2 273.3zM512 224c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 498.6 562.2 512 512 512s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 251c8.7-16.6 25.9-27 44.7-27zM128 144c-.9 0-1.7 .5-2.2 1.3L51.1 288H204.9L130.2 145.3c-.4-.8-1.3-1.3-2.2-1.3zm44.7-21l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 370.6 178.2 384 128 384s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 123C92 106.4 109.2 96 128 96s36 10.4 44.7 27z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z\"]\n};\nvar faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"]\n};\nvar faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faTired = faFaceTired;\nvar faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [640, 512, [], \"e1f3\", \"M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM448 208c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"]\n};\nvar faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [640, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [512, 512, [], \"e4c0\", \"M329.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L370.7 160H160c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C32 153.3 89.3 96 160 96H370.7L329.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 416H128c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H274.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"]\n};\nvar faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [576, 512, [], \"e4ea\", \"M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [640, 512, [], \"e4b9\", \"M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM184 296c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm312 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 64c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 78.3 364 32 448 32h32c17.7 0 32 14.3 32 32zM0 128c0-17.7 14.3-32 32-32H64c123.7 0 224 100.3 224 224v32 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C100.3 352 0 251.7 0 128z\"]\n};\nvar faSprout = faSeedling;\nvar faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [640, 512, [], \"e4c7\", \"M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z\"]\n};\nvar faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"]\n};\nvar faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"]\n};\nvar faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [640, 512, [\"remove-format\"], \"f87d\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l16-64c2.4-9.6 .2-19.7-5.8-27.5S553.9 32 544 32H376.1h-.3H192c-14.7 0-27.5 10-31 24.2l-9.3 37.3L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12.1 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z\"]\n};\nvar faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [512, 512, [\"arrows-h\"], \"f07e\", \"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M384 480c0 11.7 3.1 22.6 8.6 32H384c-17.7 0-32-14.3-32-32V383.7c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32V480c0 17.7-14.3 32-32 32H96.1c-17.7 0-32-14.3-32-32V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [640, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm-8 256v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUserLargeSlash = {\n prefix: 'fas',\n iconName: 'user-large-slash',\n icon: [640, 512, [\"user-alt-slash\"], \"f4fa\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H528L284.3 320z\"]\n};\nvar faUserAltSlash = faUserLargeSlash;\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"]\n};\nvar faHandshakeSimpleSlash = {\n prefix: 'fas',\n iconName: 'handshake-simple-slash',\n icon: [640, 512, [\"handshake-alt-slash\"], \"e05f\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSimpleSlash;\nvar faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [640, 512, [], \"e525\", \"M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z\"]\n};\nvar faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V448c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H176c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z\"]\n};\nvar faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM272 224c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [576, 512, [], \"f5fd\", \"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"]\n};\nvar faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z\"]\n};\nvar faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [576, 512, [\"house-damage\"], \"f6f1\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"]\n};\nvar faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z\"]\n};\nvar faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [9962], \"f51d\", \"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [640, 512, [], \"f653\", \"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480c61.4 0 101.6 24 126.2 50c12 12.6 19.9 25.2 24.9 34.9c2.5 4.8 4.3 9 5.5 12.1c.6 1.5 1.1 2.8 1.4 3.8c.2 .5 .3 .9 .4 1.3l.1 .5 .1 .2 0 .1 0 0c0 0 0 0-30.2 9.1l30.2-9.1c5.1 16.9-4.5 34.8-21.5 39.8c-16.8 5-34.5-4.4-39.7-21.1l0 0c-.1-.2-.2-.6-.5-1.2c-.5-1.3-1.4-3.4-2.8-6.1c-2.8-5.4-7.4-12.8-14.4-20.1c-4.2-4.4-9.4-9-15.8-13.2V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zm129.4-70.8c0 0 0 0 30.6-9.2l-30.6 9.2 0 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"]\n};\nvar faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [576, 512, [9975, \"skiing\"], \"f7c9\", \"M508.7 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM34.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L264.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L321.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L44.9 301.3c-11.8-6.1-16.3-20.6-10.2-32.4zM150.9 65.6L169 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L183.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [640, 512, [], \"e567\", \"M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [448, 512, [97], \"41\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM296 320H152l72-172.8L296 320z\"]\n};\nvar faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [512, 512, [\"temperature-down\"], \"e03f\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H448V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H352c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M32 32H64h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 320 288 64C0 46.3 14.3 32 32 32zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.7 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H424c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm0 184c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16zM160 400c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [576, 512, [\"ad\"], \"f641\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256c-13.3 0-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"]\n};\nvar faAd = faRectangleAd;\nvar faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [640, 512, [], \"e520\", \"M344 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H463.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L247.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L380 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L515.6 400H528c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C608 143 497 32 360 32H344zm50.5 168l17.1 40H365l29.5-40zm-87.7 38.1l-1.4 1.9H257.1l32.7-41.5 16.9 39.5zM120.8 240C89.4 240 64 265.4 64 296.8c0 15.5 6.3 30 16.9 40.4L158.7 240H120.8zM528 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [\"unsorted\"], \"f0dc\", \"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"]\n};\nvar faUnsorted = faSort;\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M528 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [576, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164.1 160v6.3c6.6 1.2 16.6 3.2 21 4.4c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-3.8-1-17.4-3.7-21.7-4.3c-12.2-1.9-22.2-.3-28.6 2.6c-6.3 2.9-7.9 6.2-8.2 8.1c-.6 3.4 0 4.7 .1 5c.3 .5 1 1.8 3.6 3.5c6.1 4.2 15.7 7.2 29.9 11.4l.8 .2c12.1 3.7 28.3 8.5 40.4 17.4c6.7 4.9 13 11.4 16.9 20.5c4 9.1 4.8 19.1 3 29.4c-3.3 19-15.9 32-31.6 38.7c-4.9 2.1-10 3.6-15.4 4.6V352c0 11.1-9 20.1-20.1 20.1s-20.1-9-20.1-20.1v-6.4c-9.5-2.2-21.9-6.4-29.8-9.1c-1.7-.6-3.2-1.1-4.4-1.5c-10.5-3.5-16.1-14.8-12.7-25.3s14.8-16.1 25.3-12.7c2 .7 4.1 1.4 6.4 2.1l0 0 0 0c9.5 3.2 20.2 6.9 26.2 7.9c12.8 2 22.7 .7 28.8-1.9c5.5-2.3 7.4-5.3 8-8.8c.7-4 .1-5.9-.2-6.7c-.4-.9-1.3-2.2-3.7-4c-5.9-4.3-15.3-7.5-29.3-11.7l-2.2-.7c-11.7-3.5-27-8.1-38.6-16c-6.6-4.5-13.2-10.7-17.3-19.5c-4.2-9-5.2-18.8-3.4-29c3.2-18.3 16.2-30.9 31.1-37.7c5-2.3 10.3-4 15.9-5.1v-6c0-11.1 9-20.1 20.1-20.1s20.1 9 20.1 20.1z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [448, 512, [], \"f5cb\", \"M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm194.8-6.4c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M96 96c-17.7 0-32 14.3-32 32s-14.3 32-32 32s-32-14.3-32-32C0 75 43 32 96 32h97c70.1 0 127 56.9 127 127c0 52.4-32.2 99.4-81 118.4l-63 24.5 0 18.1c0 17.7-14.3 32-32 32s-32-14.3-32-32V301.9c0-26.4 16.2-50.1 40.8-59.6l63-24.5C240 208.3 256 185 256 159c0-34.8-28.2-63-63-63H96zm48 384c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"]\n};\nvar faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [576, 512, [], \"e065\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 288c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M148 76.6C148 34.3 182.3 0 224.6 0c20.3 0 39.8 8.1 54.1 22.4l9.3 9.3 9.3-9.3C311.6 8.1 331.1 0 351.4 0C393.7 0 428 34.3 428 76.6c0 20.3-8.1 39.8-22.4 54.1L302.1 234.1c-7.8 7.8-20.5 7.8-28.3 0L170.4 130.7C156.1 116.4 148 96.9 148 76.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [576, 512, [], \"f53c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [512, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [640, 512, [], \"e4d3\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [448, 512, [\"external-link\"], \"f08e\", \"M288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L169.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 141.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H288zM80 64C35.8 64 0 99.8 0 144V400c0 44.2 35.8 80 80 80H336c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [448, 512, [], \"e4e6\", \"M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm64 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z\"]\n};\nvar faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [128739], \"f018\", \"M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm352-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCab = faTaxi;\nvar faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [576, 512, [], \"e541\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z\"]\n};\nvar faPieChart = faChartPie;\nvar faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"]\n};\nvar faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM448 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zm-166.2-89l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [128331], \"f66b\", \"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [640, 512, [129531], \"f71e\", \"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm80-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [8594], \"f061\", \"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-216c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm72 24c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [576, 512, [], \"e542\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"]\n};\nvar faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [576, 512, [], \"e57b\", \"M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [512, 512, [\"tools\"], \"f7d9\", \"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM104 432c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [576, 512, [], \"e55b\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"]\n};\nvar faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59.1 146.7-136.1 158.2c0 .6 .1 1.2 .1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l-24 0-24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2 .1-1.8C155.1 370.7 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM256 488h24c0 13.3-10.7 24-24 24s-24-10.7-24-24h24zm96-264c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [\"home-user\"], \"e1b0\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.6-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zm128.4-78.9c-2.8-2.5-6.3-3.7-9.8-3.8c-3.6 0-7.2 1.2-10 3.7c-33.2 29.7-61.4 63.4-81.4 95.8c-19.7 31.9-32.4 66.2-32.4 92.6C320 407.9 390.3 480 480 480c88.7 0 160-72 160-159.8c0-20.2-9.6-50.9-24.2-79c-14.8-28.5-35.7-58.5-60.4-81.1c-5.6-5.1-14.4-5.2-20 0c-9.6 8.8-18.6 19.6-26.5 29.5c-17.3-20.7-35.8-39.9-55.5-57.7zM530 401c-15 10-31 15-49 15c-45 0-81-29-81-78c0-24 15-45 45-82c4 5 62 79 62 79l36-42c3 4 5 8 7 12c18 33 10 75-20 96z\"]\n};\nvar faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [576, 512, [], \"e3b1\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z\"]\n};\nvar faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [576, 512, [\"cocktail\"], \"f561\", \"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM256 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [256, 512, [], \"e4c5\", \"M88 0h80c13.3 0 24 10.7 24 24V64H64V24C64 10.7 74.7 0 88 0zM0 151.7c0-15.6 9-29.8 23.2-36.5l24.4-11.4c11-5.1 23-7.8 35.1-7.8h90.6c12.1 0 24.1 2.7 35.1 7.8l24.4 11.4c14.2 6.6 23.2 20.8 23.2 36.5c0 14.4-7.5 27-18.9 34.1c11.5 8.8 18.9 22.6 18.9 38.2c0 16.7-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48c0-16.7 8.5-31.4 21.5-40C8.5 415.4 0 400.7 0 384s8.5-31.4 21.5-40C8.5 335.4 0 320.7 0 304s8.5-31.4 21.5-40C8.5 255.4 0 240.7 0 224c0-15.6 7.4-29.4 18.9-38.2C7.5 178.7 0 166.1 0 151.7zM64 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6L66.5 148.4zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"]\n};\nvar faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 208c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm256 32c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H32zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z\"]\n};\nvar faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z\"]\n};\nvar faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M96 0C80.7 0 67.6 10.8 64.6 25.7l-64 320c-1.9 9.4 .6 19.1 6.6 26.6S22.4 384 32 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H608c9.6 0 18.7-4.3 24.7-11.7s8.5-17.2 6.6-26.6l-64-320C572.4 10.8 559.3 0 544 0H96zm5.4 168L122.2 64h90.4L202.3 168H101.4zm-9.6 48H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104H235.3l10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l20.8 104zm-149.1 0h-139L260.9 64H379.1l10.4 104z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z\"]\n};\nvar faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 192c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zM400 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"]\n};\nvar faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288 144C288 64.5 223.5 0 144 0S0 64.5 0 144s64.5 144 144 144s144-64.5 144-144zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512z\"]\n};\nvar faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [576, 512, [9842, 9850, 9851], \"f1b8\", \"M206.7 45.1C224.2 17 255 0 288 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L315 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM461.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L352 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L68 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L214 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3-51.5 82.4c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0c-53.1 0-96.1-43.2-95.8-96.4c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320h73.8c34.2 0 93.7-28 93.7-64c0-35-59.5-64-93.7-64l-116.6 0L297.2 16.1C291.5 6.2 280.9 0 269.4 0H213.2c-10.6 0-18.3 10.2-15.4 20.4l40.3 140.9L38.8 5.1zm2.7 123.6C36 130.6 32 135.9 32 142c0 1.3 .2 2.6 .5 3.9L64 256 32.5 366.1c-.4 1.3-.5 2.6-.5 3.9c0 7.8 6.3 14 14 14H88c5 0 9.8-2.4 12.8-6.4L144 320H246.9l-49 171.6c-2.9 10.2 4.8 20.4 15.4 20.4l56.2 0c11.5 0 22.1-6.2 27.8-16.1l65.3-114.3L41.5 128.7z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z\"]\n};\nvar faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M86.6 64C119 35.5 158.6 15 202.3 5.6C206 19.1 208 33.3 208 48c0 38.4-13.5 73.7-36.1 101.3L86.6 64zM64 86.6l85.2 85.2C121.7 194.5 86.4 208 48 208c-14.7 0-28.9-2-42.4-5.7C15 158.6 35.5 119 64 86.6zM256 0c64.9 0 124.2 24.2 169.4 64L256 233.4 194.6 172C222.9 138.5 240 95.3 240 48c0-16.2-2-32-5.8-47.1C241.4 .3 248.7 0 256 0zM48 240c47.3 0 90.5-17.1 124-45.4L233.4 256 64 425.4C24.2 380.2 0 320.9 0 256c0-7.3 .3-14.6 .9-21.8C16 238 31.8 240 48 240zm463.1 37.8C496 274 480.2 272 464 272c-47.3 0-90.5 17.1-124 45.4L278.6 256 448 86.6c39.8 45.1 64 104.4 64 169.4c0 7.3-.3 14.6-.9 21.8zm-4.7 31.9C497 353.4 476.5 393 448 425.4l-85.2-85.2C390.3 317.5 425.6 304 464 304c14.7 0 28.9 2 42.4 5.7zM340.1 362.7L425.4 448C393 476.5 353.4 497 309.7 506.4C306 492.9 304 478.7 304 464c0-38.4 13.5-73.7 36.1-101.3zM317.4 340C289.1 373.5 272 416.7 272 464c0 16.2 2 32 5.8 47.1c-7.2 .6-14.5 .9-21.8 .9c-64.9 0-124.2-24.2-169.4-64L256 278.6 317.4 340z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H144c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM304 64H80V384H304V64z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 336c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM307.8 275.8l-128 128c-10.9 10.9-28.7 10.9-39.6 0l-64-64c-10.9-10.9-10.9-28.7 0-39.6s28.7-10.9 39.6 0L160 344.4 268.2 236.2c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"]\n};\nvar faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm240 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zM272 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z\"]\n};\nvar faHamburger = faBurger;\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [128295], \"f0ad\", \"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [640, 512, [], \"e4d0\", \"M196.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L160 71.7 133.9 14.1C128.4 2 114.1-3.3 102.1 2.1S84.7 21.9 90.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8s-21.4 15.2-18.8 28.2l8 40C42.7 175.9 52.6 184 64 184H96v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C114.7 274.6 135.8 288 160 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L224 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L236.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM528 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L464.8 250c-12.3 1-24.2 5.6-34.1 13.3L416 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L391 322.7 353.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L535.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L598.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s25-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.4-13.4-6.6-28-4.4-43.2c8.5-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"]\n};\nvar faRupee = faRupeeSign;\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM128 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm88 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"]\n};\nvar faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [128747], \"f5b0\", \"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM413.6 421.9L128 196.9V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM80 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"]\n};\nvar faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [576, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z\"]\n};\nvar faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [512, 512, [], \"e2b7\", \"M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [128008], \"f6be\", \"M288 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L248 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1C10.5 157.6-1.9 141.6 .2 124s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C325.3 164 320 146.6 320 128v0V32 12 10.7C320 4.8 324.7 .1 330.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L352 21.3l27.2 36.3L384 64h64l4.8-6.4L480 21.3 492.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C507.3 .1 512 4.8 512 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM400 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 256s96-96 96-160c0-53-43-96-96-96s-96 43-96 96c0 29.4 20.2 65.5 42.1 96H320c-53 0-96 43-96 96s43 96 96 96h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H188.6c-6.2 9.6-12.6 18.8-19 27.2c-10.7 14.2-21.3 26.9-30 36.8H416c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h96zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM149.9 448c21.9-30.5 42.1-66.6 42.1-96c0-53-43-96-96-96s-96 43-96 96c0 64 96 160 96 160s3.5-3.5 9.2-9.6c.4-.4 .7-.8 1.1-1.2c3.3-3.5 7.1-7.8 11.4-12.8c.2-.2 .4-.4 .6-.6c9.4-10.8 20.7-24.6 31.6-39.8zM96 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 416c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [640, 512, [], \"e209\", \"M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM160 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm208 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [576, 512, [], \"f62f\", \"M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [512, 512, [], \"f02c\", \"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM88.1 128l5.3-64H226.6l5.3 64H88.1z\"]\n};\nvar faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z\"]\n};\nvar faFastForward = faForwardFast;\nvar faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM208.4 208c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm128 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M314.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c9.7 8.9 12.9 22.9 8.1 35.2S557.2 256 544 256H512V368c0 26.5-21.5 48-48 48H278.1C259.6 350.8 216.8 295.9 160 261.7V256h-9.9c-16.5-9-34-16.2-52.3-21.6c-4.1-12-.8-25.3 8.5-34l208-192zM304 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H304zM24 256c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM0 376c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z\"]\n};\nvar faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [512, 512, [\"tasks-alt\"], \"f828\", \"M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"]\n};\nvar faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [640, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M41.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 41.4 86.6zM288 416H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm64-96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM432 256c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM288 192c0 35.3-28.7 64-64 64c-11.5 0-22.3-3-31.6-8.4c-.2 2.8-.4 5.5-.4 8.4c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6z\"]\n};\nvar faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [576, 512, [], \"f29e\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z\"]\n};\nvar faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"]\n};\nvar faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [512, 512, [], \"e586\", \"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [576, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M544 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM416 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM320 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM160 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM64 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [128653], \"f207\", \"M256 0C390.4 0 480 35.2 480 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C32 35.2 121.6 0 256 0zM96 160v96c0 17.7 14.3 32 32 32H240V128H128c-17.7 0-32 14.3-32 32zM272 288H384c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H272V288zM112 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 80c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16z\"]\n};\nvar faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [576, 512, [63499, \"home-lg\"], \"e3af\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faFrown = faFaceFrown;\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [640, 512, [\"store-alt\"], \"f54f\", \"M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z\"]\n};\nvar faStoreAlt = faShop;\nvar faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faSave = faFloppyDisk;\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z\"]\n};\nvar faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zm-396.3 211c.4-.8 1.3-1.3 2.2-1.3s1.7 .5 2.2 1.3L204.9 416H51.1l74.7-142.7zM128 224c-18.8 0-36 10.4-44.7 27L5.5 399.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C45.1 498.6 77.8 512 128 512s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L172.7 251c-8.7-16.6-25.9-27-44.7-27zm384-80c.9 0 1.7 .5 2.2 1.3L588.9 288H435.1l74.7-142.7c.4-.8 1.3-1.3 2.2-1.3zm-44.7-21L389.5 271.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C429.1 370.6 461.8 384 512 384s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L556.7 123C548 106.4 530.8 96 512 96s-36 10.4-44.7 27z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [\"sort-asc\"], \"f0de\", \"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faSortAsc = faSortUp;\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCommenting = faCommentDots;\nvar faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z\"]\n};\nvar faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [576, 512, [], \"e05a\", \"M455.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L228 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L135 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L247 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L403 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L471 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zm-331 332.7l0 0L176 368l-51.9-4.7zM240 320c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v32 64c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM336 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"]\n};\nvar faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [512, 512, [\"location\"], \"f601\", \"M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128zm128 80c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM288 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zm80 176c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"]\n};\nvar faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64c0-35.3-28.7-64-64-64S96 28.7 96 64s28.7 64 64 64s64-28.7 64-64zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z\"]\n};\nvar faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [640, 512, [], \"e591\", \"M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM211.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zM563.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM321.6 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.4 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"]\n};\nvar faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M0 224.2C0 100.6 100.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM240 80c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C161.5 168.1 145 208 112 208c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C184.1 302.5 224 319 224 352c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C318.5 279.9 335 240 368 240c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C295.9 145.5 256 129 256 96c0-8.8-7.2-16-16-16zM216 224c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm72 32c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V454.8c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9V218.2zm92.1 133.5c0-26.5-21.5-48-48.1-48s-48.1 21.5-48.1 48s21.5 48 48.1 48s48.1-21.5 48.1-48z\"]\n};\nvar faUserCog = faUserGear;\nvar faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [576, 512, [\"sort-numeric-up\"], \"f163\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 64c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H384c-17.7 0-32-14.3-32-32zm93.7 300.9c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [576, 512, [128682], \"f52a\", \"M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z\"]\n};\nvar faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [576, 512, [], \"e4ce\", \"M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80c0-26.5-21.5-48-48-48S16 53.5 16 80s21.5 48 48 48s48-21.5 48-48zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H224 32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"]\n};\nvar faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M304 64c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"]\n};\nvar faDigging = faPersonDigging;\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z\"]\n};\nvar faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm0 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [576, 512, [], \"f1b3\", \"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M272 96c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 320c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z\"]\n};\nvar faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [127911], \"f025\", \"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"]\n};\nvar faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [576, 512, [], \"e1a8\", \"M368 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM167 119c9.4-9.4 24.6-9.4 33.9 0L324.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L39 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L87 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM465.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM456.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [576, 512, [], \"e543\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [512, 512, [128207], \"f545\", \"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M216.3 2c4.8-2.6 10.5-2.6 15.3 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L216.3 2zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L8.3 414C3.2 411.2 0 405.9 0 400V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V400c0 5.9-3.2 11.2-8.3 14l-176 96c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM120 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM560 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [640, 512, [], \"e595\", \"M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80-32c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"]\n};\nvar faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [448, 512, [\"external-link-alt\"], \"f35d\", \"M288 32c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L306.7 128 169.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L352 173.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V64c0-17.7-14.3-32-32-32H288zM80 64C35.8 64 0 99.8 0 144V400c0 44.2 35.8 80 80 80H336c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [512, 512, [\"th\"], \"f00a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z\"]\n};\nvar faTh = faTableCells;\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 224H88c30.9 0 56 25.1 56 56s-25.1 56-56 56H80v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V320 240c0-8.8 7.2-16 16-16zm24 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H80v48h8zm72-64c0-8.8 7.2-16 16-16h24c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H176c-8.8 0-16-7.2-16-16V240zm32 112h8c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16h-8v96zm96-128h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V304 240c0-8.8 7.2-16 16-16z\"]\n};\nvar faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z\"]\n};\nvar faBible = faBookBible;\nvar faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160s160-71.6 160-160s-71.6-160-160-160zM0 256C0 132.3 100.3 32 224 32s224 100.3 224 224s-100.3 224-224 224S0 379.7 0 256z\"]\n};\nvar faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.7 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 160c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm144-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [320, 512, [\"female\"], \"f182\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faFemale = faPersonDress;\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [512, 512, [\"th-large\"], \"f009\", \"M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [512, 512, [\"volume-control-phone\"], \"f2a0\", \"M188.8 39.3c13.8 8.5 19.6 26.8 13.6 42.7L174.2 156c-5.3 14-18.5 22.5-32.4 21l-42.6-4.6c-17.4 54.1-17.4 113.2 0 167.3l42.6-4.6c13.9-1.5 27.1 7 32.4 21L202.4 430c6.1 15.9 .3 34.2-13.6 42.7l-56.4 34.8c-12.4 7.7-28 5.4-38.1-5.5C-31.4 366.1-31.4 145.9 94.3 10C104.4-.9 120.1-3.1 132.5 4.5l56.4 34.8zm218.4-5.5C471.2 86.6 512 166.6 512 256s-40.8 169.4-104.7 222.2c-10.2 8.4-25.3 7-33.8-3.2s-7-25.3 3.2-33.8C430.1 397.1 464 330.5 464 256s-33.9-141.1-87.3-185.2c-10.2-8.4-11.7-23.6-3.2-33.8s23.6-11.7 33.8-3.2zm-64.4 71.4C387.4 140.4 416 194.8 416 256s-28.6 115.6-73.1 150.8c-10.4 8.2-25.5 6.4-33.7-4s-6.4-25.5 4-33.7C346.6 342.7 368 301.8 368 256s-21.4-86.7-54.8-113.1c-10.4-8.2-12.2-23.3-4-33.7s23.3-12.2 33.7-4zm-65.4 71C303.1 193.5 320 222.8 320 256s-16.9 62.5-42.5 79.7c-11 7.4-25.9 4.5-33.3-6.5s-4.5-25.9 6.5-33.3c12.9-8.7 21.3-23.3 21.3-39.9s-8.4-31.2-21.3-39.9c-11-7.4-13.9-22.3-6.5-33.3s22.3-13.9 33.3-6.5z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M463.2 71.3c-2.4-12.8-9.8-24.1-20.7-31.3s-24.2-9.7-36.9-6.8l-216 48c-19.8 4.4-34.7 20.8-37.2 40.9l-8.8 70.6c5.3-.4 10.8-.7 16.5-.7c82.9 0 141.9 55.3 197.5 107.5l0 0c3.1 3 6.3 5.9 9.4 8.8C427.1 364.5 486.9 416 576 416c0 0 64 0 64-48c0-96-112-128-144-128h-1.6L463.2 71.3zM576 448c-102.9 0-171.1-60.5-230.9-116.3l-6.5-6C279.9 270.8 229.9 224 160 224c-57.8 0-97.4 28.6-123.1 63.5C10.7 323 0 363.8 0 384c0 35.3 28.7 64 64 64H576z\"]\n};\nvar faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm64 128c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M224 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [8356], \"f195\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V192H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v32H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H78c-2.2 10.5-6.1 20.6-11.7 29.9L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"]\n};\nvar faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [448, 512, [127991], \"f02b\", \"M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"]\n};\nvar faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"]\n};\nvar faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [448, 512, [\"angle-double-up\"], \"f102\", \"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [512, 512, [128206], \"f0c6\", \"M396.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"]\n};\nvar faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [127895], \"f4d6\", \"M224 96c39.5 0 66.8 12.2 81.9 21.5L245.6 184l79.3 87.4 36.3-40c14.7-16.2 22.8-37.3 22.8-59.1v-27c0-15.6-4.1-30.8-12-44.3L337.7 42C326.4 22.7 307 6.8 282.1 3.5C267.8 1.6 248.4 0 224 0s-43.8 1.6-58 3.5C141 6.8 121.7 22.7 110.4 42L76 101c-7.8 13.4-12 28.7-12 44.3v27c0 21.9 8.1 42.9 22.8 59.1l57.9 63.8L224 382.6 334.2 504.1c6.4 7 16.3 9.7 25.4 6.6l72-24c7.7-2.6 13.6-8.8 15.6-16.7s0-16.2-5.4-22.2L303.3 295.2 224 207.8l-81.9-90.3C157.3 108.2 184.5 96 224 96zM202.4 406.5L123.2 319 6.3 447.9c-5.4 6-7.5 14.4-5.4 22.2s7.9 14.1 15.6 16.7l72 24c9 3 19 .4 25.4-6.6l88.6-97.7z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [129729], \"f604\", \"M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [576, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 320c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V352H384c-17.7 0-32-14.3-32-32zm93.7-171.1c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [448, 512, [], \"e1d3\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V213.6L55.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L96 280.1V448c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L160 195.3V64z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm96 64c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-448c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM224 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-320c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 32C14.3 32 0 46.3 0 64S14.3 96 32 96s32-14.3 32-32s-14.3-32-32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM224 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM416 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32z\"]\n};\nvar faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM208 384c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256 32c12.5 0 24.1 6.4 30.7 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5 208 288l48-64h65z\"]\n};\nvar faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm416 0c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 384c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faCameraAlt = faCamera;\nvar faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm88 32c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128s-57.3 128-128 128zm0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm16 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [512, 512, [], \"e4dd\", \"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 392c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm280-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z\"]\n};\nvar faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [576, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M352 64c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM445.7 364.9c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 96c0 35.3-28.7 64-64 64S0 131.3 0 96S28.7 32 64 32s64 28.7 64 64zm96 176c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM80 416c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM224 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM480 96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM576 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM416 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [128666, 9951], \"f0d1\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M272 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z\"]\n};\nvar faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [576, 512, [], \"e57d\", \"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H416L288 288V512H32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M374.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 86.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"]\n};\nvar faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [576, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm128-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faHdd = faHardDrive;\nvar faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-18.5 5-38.8 8.3-50.9 10c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.2-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M112 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32V224v64V416c0 17.7-14.3 32-32 32H144c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32h48V96zm416 0v32h48c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H528v32c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z\"]\n};\nvar faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32-128c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z\"]\n};\nvar faListAlt = faRectangleList;\nvar faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [576, 512, [], \"e57c\", \"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm320 0c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192zM224 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H144c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [128748], \"f5af\", \"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160-80c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [448, 512, [\"subway\"], \"f239\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM128 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm224 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSubway = faTrainSubway;\nvar faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM400 256c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [512, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M177.5 98c-8.8-3.8-19-2-26 4.6l-144 136C2.7 243.1 0 249.4 0 256s2.7 12.9 7.5 17.4l144 136c7 6.6 17.2 8.4 26 4.6s14.5-12.5 14.5-22l0-88 288 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-288 0 0-88c0-9.6-5.7-18.2-14.5-22z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [129516], \"f471\", \"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM107.5 224H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7L144.7 210c-9.5 8.5-22.2 14-37.2 14z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faSubtract = faMinus;\nvar faChildRifle = {\n prefix: 'fas',\n iconName: 'child-rifle',\n icon: [576, 512, [], \"e4e0\", \"M176 128c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H59.4C48.7 96 40 104.7 40 115.4c0 3 .7 5.9 2 8.7c6 12.4 23.8 50.8 32.8 83.9H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h7.7C78 302.9 69.4 352.7 63.1 384H192.9c-6.4-31.3-14.9-81.1-16.6-128H184c13.3 0 24-10.7 24-24s-10.7-24-24-24h-2.8c9-33.2 26.8-71.5 32.8-83.9c1.3-2.7 2-5.6 2-8.7c0-10.7-8.7-19.4-19.4-19.4H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM25.2 451.4l-8.8 4.4C6.3 460.8 0 471.1 0 482.3C0 498.7 13.3 512 29.7 512H226.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H56.4C42.9 416 32 426.9 32 440.4c0 4.6-2.6 8.9-6.8 10.9zm279.2 4.4c-10.1 5-16.4 15.3-16.4 26.5c0 16.4 13.3 29.7 29.7 29.7H482.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H344.4c-13.5 0-24.4 10.9-24.4 24.4c0 4.6-2.6 8.9-6.8 10.9l-8.8 4.4zM304 259.9c0 7.8 2.8 15.3 8 21.1l18.9 21.4c5.4 6.1 8.2 14 8 22.1L337 384H462.5l-2.7-58.7c-.4-8.5 2.6-16.9 8.4-23.1l19.3-21c5.4-5.9 8.5-13.6 8.5-21.7V200c0-4.4-3.6-8-8-8H464c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H376c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v59.9zM392 336c-4.4 0-8-3.6-8-8V304c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 4.4-3.6 8-8 8H392z\"]\n};\nvar faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [512, 512, [\"long-arrow-left\"], \"f177\", \"M109.3 288L480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [576, 512, [], \"e55c\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M320 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"]\n};\nvar faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z\"]\n};\nvar faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"]\n};\nvar faCog = faGear;\nvar faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [640, 512, [\"tint-slash\"], \"f5c7\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L491.5 359.9c3-12.8 4.5-26.2 4.5-39.9c0-74.1-102.3-230.6-150.9-300.7c-12.3-17.7-37.8-17.7-50.1 0c-20.8 30-51.4 75.8-79.6 124.1L38.8 5.1zM144 320c0 97.2 78.8 176 176 176c48.1 0 91.7-19.3 123.5-50.6L170 229.9c-15.6 34.7-26 66.6-26 90.1zm96 0c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [128332], \"f678\", \"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z\"]\n};\nvar faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [640, 512, [], \"e52b\", \"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z\"]\n};\nvar faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [512, 512, [], \"e54b\", \"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [576, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H76.1l60.3 316.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H179.9l-9.1-48h317c14.3 0 26.9-9.5 30.8-23.3l54-192C578.3 52.3 563 32 541.8 32H122l-2.4-12.5C117.4 8.2 107.5 0 96 0H24zM176 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm336-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z\"]\n};\nvar faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [576, 512, [], \"e55f\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M40 352c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zm192 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 320l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40zM232 192c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 160l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40L40 32C17.9 32 0 49.9 0 72l0 48c0 22.1 17.9 40 40 40zM232 32c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0z\"]\n};\nvar faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z\"]\n};\nvar faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M289 24.2C292.5 10 305.3 0 320 0H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H345L239 487.8c-3.2 13-14.2 22.6-27.6 24s-26.1-5.5-32.1-17.5L76.2 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c12.1 0 23.2 6.8 28.6 17.7l73.3 146.6L289 24.2zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [320, 512, [\"step-backward\"], \"f048\", \"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z\"]\n};\nvar faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [640, 512, [], \"f432\", \"M550.3 0c-10.9 0-21.4 3.4-30.2 9.8L279.7 184.6c-13.9 10.1-26.8 21.4-38.7 33.8L138.7 325.3c-9.2 9.6-19.3 18.4-30.1 26.3L79.3 372.9c1.3 1.5 2.6 3 3.9 4.7l48 64c1.6 2.2 3.1 4.4 4.4 6.6l27.3-19.9c11.6-8.4 24-15.8 37-21.8l135.3-63.1c16.7-7.8 32.7-17.2 47.6-28.1L619 143.6c13.2-9.6 21-24.9 21-41.2c0-11-3.6-21.8-10.2-30.6L609.6 44.8 591.4 20.6C581.7 7.6 566.5 0 550.3 0zM496 512c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM57.6 396.8c-10.6-14.1-30.7-17-44.8-6.4s-17 30.7-6.4 44.8l48 64c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-48-64z\"]\n};\nvar faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [384, 512, [115], \"53\", \"M131.1 105.4c-20.1 8.6-30.8 21.8-33.9 39.4c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3c-16.8-5.6-25.8-23.7-20.3-40.5s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5-31.5-5.5c7.3-42.5 35.3-71.7 71.8-87.3c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.1 22.7c-11.2-3-48.2-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"]\n};\nvar faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [640, 512, [], \"e29c\", \"M128 120c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32 49.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM536 96c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM320 440c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [576, 512, [\"clinic-medical\"], \"f7f2\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V152c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h32l-18.8 75.1c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [576, 512, [\"battery-3\"], \"f242\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm208 32V320H96V192H288z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [576, 512, [9772], \"f66d\", \"M277.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C376.9 97.4 400 134 400 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L304 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L433.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L304 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C229.8 463.3 219.9 472 208 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L144 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C58.4 324.5 32 277.1 32 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29c4.8-3.2 8.9-5.7 11.8-7.3c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C137.2 119 128 149.5 128 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L272 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C199.1 254.6 176 218 176 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM252.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C259 210.2 264 190.9 264 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C317 141.8 312 161.1 312 176s5 34.2 11.8 53.1z\"]\n};\nvar faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M0 416c0-17.7 14.3-32 32-32l54.7 0c12.3-28.3 40.5-48 73.3-48s61 19.7 73.3 48L480 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-246.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 448c-17.7 0-32-14.3-32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-32-80c32.8 0 61 19.7 73.3 48l54.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-54.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l246.7 0c12.3-28.3 40.5-48 73.3-48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm73.3 0L480 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-214.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 128C14.3 128 0 113.7 0 96S14.3 64 32 64l86.7 0C131 35.7 159.2 16 192 16s61 19.7 73.3 48z\"]\n};\nvar faSlidersH = faSliders;\nvar faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M320 144c0 79.5-64.5 144-144 144S32 223.5 32 144S96.5 0 176 0s144 64.5 144 144zM176 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM144 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z\"]\n};\nvar faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z\"]\n};\nvar faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM224 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 360c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zm0-160c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zM120 96c0 30.9-25.1 56-56 56S8 126.9 8 96S33.1 40 64 40s56 25.1 56 56z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128v80c26.5 0 48 21.5 48 48s-21.5 48-48 48v80c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V304c-26.5 0-48-21.5-48-48s21.5-48 48-48V128c0-35.3-28.7-64-64-64H64zm64 96l0 192H448V160H128zm-32 0c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"]\n};\nvar faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [512, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 88L32 208c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l288 0 0 88c0 9.6 5.7 18.2 14.5 22z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M63 23.9C59.4 10.1 46.9 0 32 0C14.3 0 0 14.3 0 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V380.1c2-.8 4.8-1.8 8.2-3c8-2.8 19.4-6.6 32.6-10.4C131.9 359 164.5 352 192 352c26.3 0 46 6.4 70 14.4l1 .3c23.8 7.9 51.9 17.3 89 17.3c36.8 0 72.5-9.1 98.1-17.6c13-4.3 23.8-8.7 31.5-11.9c3.8-1.6 6.9-3 9-4c1.1-.5 1.9-.9 2.5-1.2l.7-.4 .2-.1 .1 0 0 0 0 0s0 0-14.3-28.6l14.3 28.6c10.8-5.4 17.7-16.5 17.7-28.6V289.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 311.5 402.1 320 368 320c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2C247.5 295.3 221.4 288 192 288c-29.7 0-61.9 7.5-87.3 15.3C92.1 307.2 81.5 311 74 313.9c-3.7 1.4-6.7 2.6-8.6 3.5L64 318V283.5c7.9-3 18.7-6.9 31.3-10.8c26.6-8.2 62.4-16.7 96.7-16.7c34.3 0 64.2 8.5 91.8 16.4l.7 .2c28.3 8.1 54.2 15.4 83.5 15.4c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V193.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 215.5 402.1 224 368 224c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2C247.5 199.3 221.4 192 192 192c-29.7 0-61.9 7.5-87.3 15.3C92.1 211.2 81.5 215 74 217.9c-3.7 1.4-6.7 2.6-8.6 3.5L64 222V187.5c7.9-3 18.7-6.9 31.3-10.8c26.6-8.2 62.4-16.7 96.7-16.7c34.3 0 64.2 8.5 91.8 16.4l0 0 .7 .2c28.3 8.1 54.2 15.4 83.5 15.4c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V97.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 119.5 402.1 128 368 128c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2c-6.7-1.9-13.2-3.8-19.7-5.5V72.8c9.6 2.4 18.8 5 27.8 7.6l.7 .2C312.8 88.7 338.7 96 368 96c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V32c0-11.4-6.1-21.9-15.9-27.7s-22-5.8-31.9-.2l-.2 .1c-.3 .2-.7 .4-1.4 .8c-1.3 .7-3.4 1.8-6.2 3.1c-5.5 2.6-13.6 6.2-23.4 9.8c-20 7.3-46.2 14.1-73 14.1c-26.7 0-50.6-6.6-79.1-14.8l-1.3-.4C252.3 9.1 220.5 0 184 0C147.3 0 109.8 9 82.6 17.4c-7.2 2.2-13.8 4.4-19.6 6.5zM208 48c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm-64 8c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 72c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm-48-8c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [640, 512, [], \"e51d\", \"M192 0H48C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H162.7c6.6-18.6 24.4-32 45.3-32V272c0-44.2 35.8-80 80-80h32V128H224c-17.7 0-32-14.3-32-32V0zm96 224c-26.5 0-48 21.5-48 48v16 96 32H208c-8.8 0-16 7.2-16 16v16c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V432c0-8.8-7.2-16-16-16H592V288c0-35.3-28.7-64-64-64H320 304 288zm32 64H528V416H304V288h16zM224 0V96h96L224 0z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M472.7 188.8c-8.5 13.8-26.8 19.6-42.7 13.6L356 174.2c-14-5.3-22.5-18.5-21-32.4l4.6-42.6c-54.1-17.4-113.2-17.4-167.3 0l4.6 42.6c1.5 13.9-7 27.1-21 32.4L82 202.4c-15.9 6.1-34.2 .3-42.7-13.6L4.5 132.5c-7.7-12.4-5.4-28 5.5-38.1c135.9-125.8 356.1-125.8 492 0c10.9 10.1 13.2 25.7 5.5 38.1l-34.8 56.4zM32 272c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V272zm0 192c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V464zM96 352h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H384c-8.8 0-16-7.2-16-16V368zM336 256h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V272zm16 176h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V464c0-8.8 7.2-16 16-16zM128 464c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V464z\"]\n};\nvar faTeletype = faTty;\nvar faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [512, 512, [], \"e476\", \"M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z\"]\n};\nvar faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [576, 512, [], \"e54e\", \"M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM320 80c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nvar faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [384, 512, [\"hiking\"], \"f6ec\", \"M288 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM243.3 230.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z\"]\n};\nvar faHiking = faPersonHiking;\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S80 114.1 80 176s50.1 112 112 112zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM256 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zM64 224c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM160 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zM288 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM256 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32H0zM32 64L56.6 43.5C48 33.2 33.8 29.3 21.1 33.9S0 50.5 0 64l32 0zM352 448l-24.6 20.5c8.6 10.3 22.8 14.2 35.5 9.6s21.1-16.6 21.1-30.1H352zM384 64c0-17.7-14.3-32-32-32s-32 14.3-32 32h64zM64 448V64H0V448H64zM7.4 84.5l320 384 49.2-41-320-384L7.4 84.5zM384 448V64H320V448h64z\"]\n};\nvar faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-64-8c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z\"]\n};\nvar faTram = faCableCar;\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z\"]\n};\nvar faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [640, 512, [], \"e4d4\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [576, 512, [128674], \"f21a\", \"M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [640, 512, [], \"e4b8\", \"M576 416L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L512 274.7 512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L192 274.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L86.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zM432 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrin = faFaceGrin;\nvar faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [576, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [9193], \"f04e\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMeh = faFaceMeh;\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z\"]\n};\nvar faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 128c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"]\n};\nvar faBookDead = faBookSkull;\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM352 208c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [512, 512, [\"dedent\"], \"f03b\", \"M32 64c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 96 32 81.7 32 64zM224 192c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm32 96H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32zM32 448c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L32.2 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [576, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H32zM160 224H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [576, 512, [8644, \"exchange\"], \"f0ec\", \"M422.6 278.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 176H64c-17.7 0-32-14.3-32-32s14.3-32 32-32H434.7L377.4 54.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l112 112c12.5 12.5 12.5 32.8 0 45.3l-112 112zm-269.3 224l-112-112c-12.5-12.5-12.5-32.8 0-45.3l112-112c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L141.3 336H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H141.3l57.4 57.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [448, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"]\n};\nvar faCutlery = faUtensils;\nvar faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"]\n};\nvar faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zM128 368c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zm288 0c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192h88l0 288c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32l0-288h88c9.6 0 18.2-5.7 22-14.5z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [384, 512, [9209], \"f04d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"]\n};\nvar faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32.4 49.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM392 272c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm-96 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [576, 512, [], \"e52d\", \"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"]\n};\nvar faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 224c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zm-96 32c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm96-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z\"]\n};\nvar faZap = faBolt;\nvar faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [448, 512, [], \"e4f4\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm41 156.5L98.4 64H349.6L343 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L105 156.5z\"]\n};\nvar faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z\"]\n};\nvar faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [576, 512, [], \"e2c5\", \"M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 80c-88.4 0-160-71.6-160-160s71.6-160 160-160s160 71.6 160 160s-71.6 160-160 160zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [448, 512, [9794], \"f222\", \"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [320, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M58.6 46.2C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM352 256c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zm32 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M0 464V316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5C361.6 7.9 384 23.8 384 46.4c0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H48c-26.5 0-48-21.5-48-48zM328 224c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H352V352c0 53-43 96-96 96s-96-43-96-96V128H48z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64V304v48 80c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L320 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4V64c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [512, 512, [], \"e4c1\", \"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM512 384c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 64c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64S28.7 64 64 64z\"]\n};\nvar faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z\"]\n};\nvar faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [62774], \"3c\", \"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [448, 512, [8964], \"f107\", \"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h64H384h64c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM384 512c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V480c0 17.7-14.3 32-32 32zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm200-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M0 201.7C0 90.3 90.3 0 201.7 0H224c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H416v32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 35.3-28.7 64-64 64H288c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V375.8c0-17-7.1-33-17.5-46.4C18.3 293.2 0 246.5 0 201.7zM336 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm272 88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40 24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm-64 48c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm128 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM608 504c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40-72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-25.3-19.5-46-44.3-47.9c7.7-8.5 12.3-19.8 12.3-32.1c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 320H96c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64V288c0 17.7 14.3 32 32 32z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [512, 512, [\"long-arrow-right\"], \"f178\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M120 256c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm160 0c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm104 56c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M264 136c0 37.1-19.4 69.6-48.6 88H224c17.7 0 32 14.3 32 32s-14.3 32-32 32c0 96 24 128 24 128H72s24-32 24-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h8.5C75.4 205.6 56 173.1 56 136C56 78.6 102.6 32 160 32s104 46.6 104 104zM32 448H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [576, 512, [\"first-aid\"], \"f479\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 256c-70.7 0-128-57.3-128-128S249.3 0 320 0s128 57.3 128 128s-57.3 128-128 128zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faAutomobile = faCar;\nvar faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M352 96c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM240 248V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [640, 512, [], \"e52f\", \"M560 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"]\n};\nvar faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [640, 512, [], \"e4ba\", \"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M64.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L217.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L63.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM32 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L56.2 158C45.6 151.6 32 159.3 32 171.7zM326.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L338.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM512 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L302.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM249.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM57.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L46.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L418.9 238.1c-6.5-10-21.4-9.6-27.3 .8L306.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H199.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM190.4 176H353.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"]\n};\nvar faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [640, 512, [], \"e58c\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"]\n};\nvar faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [512, 512, [\"temperature-up\"], \"e040\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM448 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [127941], \"f5a2\", \"M16 0H144c5.3 0 10.3 2.7 13.3 7.1l81.1 121.6c-49.5 4.1-94 25.6-127.6 58.3L2.7 24.9C-.6 20-.9 13.7 1.9 8.5S10.1 0 16 0zM509.3 24.9L401.2 187.1c-33.5-32.7-78.1-54.2-127.6-58.3L354.7 7.1c3-4.5 8-7.1 13.3-7.1H496c5.9 0 11.3 3.2 14.1 8.5s2.5 11.5-.8 16.4zM432 336c0 97.2-78.8 176-176 176s-176-78.8-176-176s78.8-176 176-176s176 78.8 176 176zM264.4 241.1c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zM176 288c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-32c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z\"]\n};\nvar faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [576, 512, [], \"e560\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M601.2 5.1c10.4-8.2 25.5-6.3 33.7 4.1s6.3 25.5-4.1 33.7l-592 464c-10.4 8.2-25.5 6.3-33.7-4.1s-6.3-25.5 4.1-33.7l155.6-122C101.8 270 64 171.4 64 64c0-18 12.1-33.8 29.5-38.6l88-24c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L208 207.3c12 25.5 27.2 49.2 45 70.7L601.2 5.1zM325.7 343.7c13.7 9.1 28 17.3 43 24.3L409 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C545.8 499.9 530 512 512 512c-104.9 0-201.3-36-277.7-96.4l91.3-72z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [640, 512, [\"hands-helping\"], \"f4c4\", \"M543.9 251.4c0-1.1 .1-2.2 .1-3.4c0-48.6-39.4-88-88-88l-40 0H320l-16 0 0 0v16 72c0 22.1-17.9 40-40 40s-40-17.9-40-40V128h.4c4-36 34.5-64 71.6-64H408c2.8 0 5.6 .2 8.3 .5l40.1-40.1c21.9-21.9 57.3-21.9 79.2 0l78.1 78.1c21.9 21.9 21.9 57.3 0 79.2l-69.7 69.7zM192 128V248c0 39.8 32.2 72 72 72s72-32.2 72-72V192h80l40 0c30.9 0 56 25.1 56 56c0 27.2-19.4 49.9-45.2 55c8.2 8.6 13.2 20.2 13.2 33c0 26.5-21.5 48-48 48h-2.7c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48H224c-.9 0-1.8 0-2.7-.1l-37.7 37.7c-21.9 21.9-57.3 21.9-79.2 0L26.3 407.6c-21.9-21.9-21.9-57.3 0-79.2L96 258.7V224c0-53 43-96 96-96z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [62769], \"3e\", \"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"]\n};\nvar faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [576, 512, [127946, \"swimmer\"], \"f5c4\", \"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM32 160c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 496c97.2 0 176-78.8 176-176c0-74.1-102.3-230.6-150.9-300.7c-12.3-17.7-37.8-17.7-50.1 0C118.3 89.4 16 245.9 16 320c0 97.2 78.8 176 176 176zM112 320c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faTint = faDroplet;\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"]\n};\nvar faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zm48 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M480 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [576, 512, [\"battery-0\"], \"f244\", \"M80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zM64 176c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z\"]\n};\nvar faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [320, 512, [], \"e447\", \"M96.9 96c2.1-11.6 8.7-19.8 21.1-25.4c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8c-34.7-5.7-69.4-3.6-98 9.3c-29.8 13.5-52.2 38.6-58 74.1c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C54.3 194.2 38.5 215.1 33.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"]\n};\nvar faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM96 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm352-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M0 204.2V48c0-8.8 7.2-16 16-16H72c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h80c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h56c8.8 0 16 7.2 16 16V204.2c0 12.1-6.8 23.2-17.7 28.6l-28.6 14.3c-10.8 5.4-17.7 16.5-17.5 28.6C322.2 360.7 336 416 336 416H48s13.8-55.3 15.8-140.2c.3-12.1-6.6-23.2-17.5-28.6L17.7 232.8C6.8 227.4 0 216.3 0 204.2zM176 320h32c8.8 0 16-7.2 16-16V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"]\n};\nvar faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [512, 512, [\"blind\"], \"f29d\", \"M176 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [576, 512, [129345], \"f569\", \"M533.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L402.2 104.5C367.8 98.7 329 96 288 96C146.6 96 32 128 32 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM339.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C490.4 181.8 496 197.4 496 208c0 .8-2.7 17.2-46 35.9C411.1 260.7 354 272 288 272s-123.1-11.3-162-28.1C82.7 225.2 80 208.8 80 208c0-10.6 5.6-26.2 44.4-41.3C162.6 151.9 219.8 144 288 144c18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16C336 64.5 271.5 0 192 0S48 64.5 48 144c0 5.4 .3 10.7 .9 16H48c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H336c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM64 288L168.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L320 288H64z\"]\n};\nvar faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 448c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-96-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"]\n};\nvar faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z\"]\n};\nvar faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [576, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M160 48c0-26.5 21.5-48 48-48h48V80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V0h48c26.5 0 48 21.5 48 48V176c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48zM48 288H96v80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V288h48c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336c0-26.5 21.5-48 48-48zm320 0h48v80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V288h48c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V336c0-26.5 21.5-48 48-48z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [640, 512, [128279, \"chain\"], \"f0c1\", \"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"]\n};\nvar faChain = faLink;\nvar faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM192 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [384, 512, [9654], \"f04b\", \"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z\"]\n};\nvar faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z\"]\n};\nvar faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352c79.5 0 144-64.5 144-144s-64.5-144-144-144S64 128.5 64 208s64.5 144 144 144z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H293c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219v-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 512c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [576, 512, [\"diagnoses\"], \"f470\", \"M288 176c48.6 0 88-39.4 88-88s-39.4-88-88-88s-88 39.4-88 88s39.4 88 88 88zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM272 280c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm56 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM96 240c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm368 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M0 24C0 10.7 10.7 0 24 0H96c11.5 0 21.4 8.2 23.6 19.5L122 32H312V134.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V32H541.8c21.2 0 36.5 20.3 30.8 40.7l-54 192c-3.9 13.8-16.5 23.3-30.8 23.3h-317l9.1 48H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H160c-11.5 0-21.4-8.2-23.6-19.5L76.1 48H24C10.7 48 0 37.3 0 24zM224 464c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm240 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [576, 512, [128221, \"file-edit\"], \"f31c\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V285.7l-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faFileEdit = faFilePen;\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.2 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z\"]\n};\nvar faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [576, 512, [], \"e53f\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [512, 512, [], \"f078\", \"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [576, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm368 32V320H96V192H448z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [512, 512, [128369, 9760], \"f714\", \"M400 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H208c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C112 57.3 176.5 0 256 0s144 57.3 144 128zM200 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm144-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM35.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L256 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L327.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L256 419.8 78.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L184.4 384 49.7 316.6c-15.8-7.9-22.2-27.1-14.3-42.9z\"]\n};\nvar faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432c0 13.3 10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M64 144c26.5 0 48-21.5 48-48s-21.5-48-48-48S16 69.5 16 96s21.5 48 48 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48-208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faListDots = faListUl;\nvar faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0l139 92.7L602.4 126c22 4.9 37.6 24.4 37.6 46.9V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V172.8c0-22.5 15.6-42 37.6-46.9L163.2 98.1l139-92.7zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72c48.6 0 88-39.4 88-88s-39.4-88-88-88s-88 39.4-88 88s39.4 88 88 88zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M318 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26S14.4 320 24 320h88l0-288c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32l0 288h88c9.6 0 18.2 5.7 22 14.5z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [640, 512, [], \"e561\", \"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H416c10.3 0 19.9 4.9 26 13.3s7.7 19.1 4.4 28.8L375.1 416H72.9L1.6 202.1C-1.6 192.4 0 181.6 6 173.3s15.7-13.3 26-13.3H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM32 480c0-17.7 14.3-32 32-32H83.6 364.4 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128 64c-17.7 0-32-14.3-32-32z\"]\n};\nvar faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z\"]\n};\nvar faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM216 192c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [576, 512, [\"tasks\"], \"f0ae\", \"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faTasks = faListCheck;\nvar faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 272c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zM268.3 308.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4s-16.6 20.4-29.4 17zM545 358.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M241.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H504c13.3 0 24 10.7 24 24s-10.7 24-24 24H475.8c-10.8 0-21.4-2-31.5-5.8L92.1 371.3c-11.5-4.4-22-11.2-30.8-20L39 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L224 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM171 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.4-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L171 350.1zM464 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm368-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1z\"]\n};\nvar faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M256 448C150 448 64 362 64 256S150 64 256 64s192 86 192 192s-86 192-192 192zm0 64c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"]\n};\nvar faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [576, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [512, 512, [], \"f0c5\", \"M224 0c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224zM64 160c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64H64V224h64V160H64z\"]\n};\nvar faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [448, 512, [\"grip-horizontal\"], \"f58d\", \"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V136zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z\"]\n};\nvar faGripHorizontal = faGrip;\nvar faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M384 24c0-9.6 5.7-18.2 14.5-22s19-2 26 4.6l144 136c4.8 4.5 7.5 10.8 7.5 17.4s-2.7 12.9-7.5 17.4l-144 136c-7 6.6-17.2 8.4-26 4.6s-14.5-12.5-14.5-22V224H352 337.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C242.8 374.8 160 333.4 160 240c0-79.5 64.5-144 144-144h80V24zM0 144C0 99.8 35.8 64 80 64H96c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V416c0-17.7 14.3-32 32-32s32 14.3 32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V144z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"]\n};\nvar faAdd = faPlus;\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z\"]\n};\nvar faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [640, 512, [], \"e4e5\", \"M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 224c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [320, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 256c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm-26.7 32h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [384, 512, [], \"e222\", \"M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z\"]\n};\nvar faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [448, 512, [], \"f77c\", \"M296 88c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"]\n};\nvar faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [640, 512, [], \"e592\", \"M211.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM321.6 192c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [128668], \"f722\", \"M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256c-44.2 0-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80s-35.8-80-80-80zM528 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"]\n};\nvar faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [640, 512, [], \"e4b0\", \"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [448, 512, [], \"e51e\", \"M222.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM384 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [576, 512, [], \"f62e\", \"M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [576, 512, [], \"f54e\", \"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z\"]\n};\nvar faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z\"]\n};\nvar faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [576, 512, [], \"e55e\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-87.5-68.6c.5-1.7 .7-3.5 .7-5.4c0-27.6-11-54.1-30.5-73.7L512 320c-20.5-20.5-32-48.3-32-77.3V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM160 242.7c0 29-11.5 56.8-32 77.3l-1.5 1.5C107 341 96 367.5 96 395.2c0 11.5 9.3 20.8 20.8 20.8H406.2L160 222.1v20.7zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M288 0H400c8.8 0 16 7.2 16 16V64c0 8.8-7.2 16-16 16H320V95.5L410.3 160H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [576, 512, [], \"f575\", \"M118.6 9.4C106.1-3.1 85.9-3.1 73.4 9.4s-12.5 32.8 0 45.3L154.7 136 62.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L180.1 481.4c37.5 37.5 98.3 37.5 135.8 0L506.3 290.9c28.1-28.1 28.1-73.7 0-101.8L354.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L200 90.7 118.6 9.4zM200 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L245.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L461.1 234.3c3.1 3.1 3.1 8.2 0 11.3L418.7 288H99.5c1.4-5.4 4.2-10.4 8.4-14.6L200 181.3z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [448, 512, [8963], \"f106\", \"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [384, 512, [9001], \"f053\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 278.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-3.1 11c-7.4-.3-14.9 .4-22.4 2.1c-9 2.1-17.8 4.4-26.2 7l-4.4-10.3c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l3.6 8.5c-16.5 7.1-31.5 15.1-45.2 23.9L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l5.8 8.7c-13.5 11.2-25.3 23.1-35.5 35.3l-10.1-8.1c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L66 155c-1.6 2.4-3.1 4.8-4.5 7.3c-7.1 11.8-12.8 23.2-17.4 34l-7.4-3c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l8.7 3.5c-.2 .8-.4 1.6-.7 2.3c-2.6 9.4-4.2 17.4-5.3 23.5c-.5 3.1-.9 5.7-1.2 7.7c-.1 1-.2 2-.3 2.7l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.4 2.8l0 0-29.4-2.7c-.3 3.8-.4 7.5-.3 11.2l-11 3.1C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l10.3-2.9c8 15.5 20.7 28.3 36.4 36.4L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l3.1-11c17.8 .8 34.7-4.1 48.8-13.2l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c6.8-10.6 11.3-22.9 12.7-36.2l.1-.6c.2-1.3 .7-3.8 1.7-7.4l.2-.6 9.4 4c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.5-3.6c7.5-11.1 18.7-23.7 36.5-34.5l1.6 5.6c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-3-10.6c5.2-1.7 10.7-3.2 16.6-4.6c9.7-2.2 18.5-6 26.4-11.1l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c9.1-14.3 14-31.2 13.2-48.8l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-10.3 2.9c-8.1-15.9-21-28.5-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3zM106.2 275.8l-37.1-3.4 0 0 37.1 3.4zM128 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm96-112c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm98.7 345c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l3.1-11c7.4 .3 14.9-.4 22.4-2.1c9-2.1 17.8-4.4 26.2-7l4.4 10.3c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-3.6-8.5c16.5-7.1 31.5-15.1 45.2-23.9L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-5.8-8.7c13.5-11.2 25.3-23.1 35.5-35.3l10.1 8.1c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574 357c1.6-2.4 3.1-4.8 4.5-7.3c7.1-11.8 12.8-23.2 17.4-34l7.4 3c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-8.7-3.5c.2-.8 .4-1.6 .7-2.3c2.6-9.4 4.2-17.4 5.3-23.5c.5-3.1 .9-5.7 1.2-7.7c.1-1 .2-2 .3-2.7l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.4-2.8l0 0 29.4 2.7c.3-3.8 .4-7.5 .3-11.2l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-10.3 2.9c-8-15.5-20.7-28.3-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.2 12.4l-3.1 11c-17.8-.8-34.7 4.1-48.8 13.2l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-6.8 10.6-11.3 22.9-12.7 36.2l-.1 .6c-.2 1.3-.7 3.8-1.7 7.4l-.2 .6-9.4-4c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.5 3.6c-7.5 11.1-18.7 23.7-36.5 34.5l-1.6-5.6c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l3 10.6c-5.2 1.7-10.7 3.2-16.6 4.6c-9.7 2.2-18.5 6-26.4 11.1l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-9.1 14.2-14 31.2-13.2 48.8l-11 3.1c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l10.3-2.9c8.1 15.9 21 28.5 36.4 36.4l-3 10.3zM570.9 239.5l0 0-37.1-3.4 37.1 3.4zM384 384c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M238.5 53.1C251 39.6 268.6 32 287 32c28.9 0 54.5 18.7 63.2 46.3L366 128.6c7.3 23 25.2 41 48.2 48.3l62.2 19.9c21.2 6.8 35.6 26.5 35.6 48.7c0 17.5-8.9 33.7-23.6 43.1l-85.9 54.8c-10.6 6.8-16.6 18.8-15.7 31.3l2.5 33.9c2.8 38.5-27.7 71.4-66.4 71.4c-13.6 0-26.9-4.2-38.1-12l-48.2-33.6c-14.8-10.3-32.3-15.8-50.3-15.8H170.2c-4.9 0-9.9 .4-14.8 1.2L83.9 432.1c-21.3 3.6-42.8-5.7-54.6-23.9c-11.8-18.1-11.8-41.4 0-59.4L56.5 307c4.9-7.5 7.5-16.3 7.5-25.3c0-9.9-3.2-19.5-9-27.4L11.3 194.6C-6.5 170.3-.7 136.2 24.2 119.2c9.7-6.6 21.2-9.8 32.9-9.1l80.6 4.6c26.1 1.5 51.5-8.7 69.4-27.9l31.5-33.8zM160 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM288 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 368c-61.9 0-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112s-50.1 112-112 112zm0 64c97.2 0 176-78.8 176-176s-78.8-176-176-176S16 158.8 16 256s78.8 176 176 176z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [384, 512, [9002], \"f054\", \"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z\"]\n};\nvar faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [448, 512, [], \"e06b\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM32 128V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [576, 512, [\"battery-2\"], \"f243\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm112 32V320H96V192h96z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 400c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 512c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm336-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 320c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48zm-48-80c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zM160 64c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM224 240c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm256 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [384, 512, [62101, 62785, \"percentage\"], \"25\", \"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128c0-35.3-28.7-64-64-64S0 92.7 0 128s28.7 64 64 64s64-28.7 64-64zM384 384c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faPercentage = faPercent;\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM240 400c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM80 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [448, 512, [], \"e4f5\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm51 297.5L98.4 64H349.6L333 297.5 320 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM288 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C193.7 125.9 160 172 160 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [576, 512, [], \"e163\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z\"]\n};\nvar faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSmile = faFaceSmile;\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [127942], \"f091\", \"M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z\"]\n};\nvar faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [448, 512, [128720, \"pray\"], \"f683\", \"M352 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [128296], \"f6e3\", \"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M320 0c17.7 0 32 14.3 32 32V96H480c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H160c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm152 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.7 8.4 166.9 8 160 8s-13.7 .4-20.4 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM208 176c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 400c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCogs = faGears;\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z\"]\n};\nvar faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [576, 512, [], \"e4b7\", \"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM448 208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm128 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM272 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM144 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM576 336c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-48-80c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M287.6 .1c-19.7 0-38.3 9.1-50.4 24.6L205.9 64.9c-17.9 23-46 35.6-75.1 33.7L59.1 94c-13.5-.9-26.9 3.2-37.7 11.6C-1.3 123.2-6.7 155.2 8.8 179.4l44.5 69.2c7.1 11 10.8 23.8 10.8 36.8c0 11.9-3.1 23.5-9 33.8L27.4 367.7c-10 17.5-10 39.1 0 56.6c12.1 21.2 36.4 32.3 60.4 27.7l67-13c5.5-1.1 11.2-1.6 16.8-1.6H180c20.9 0 41 7.4 56.9 20.9l45 38.2c11.8 10 26.9 15.6 42.4 15.6c37.8 0 67.7-31.9 65.4-69.6l-3.1-50.6c-1-16.8 6.6-32.9 20.1-42.8l82.5-60.2c14.2-10.4 22.7-27 22.7-44.6c0-23.2-14.5-43.9-36.3-51.8l-58.2-21.2c-24.4-8.9-42.9-29.1-49.7-54.2L349.3 47.4C341.8 19.5 316.5 .1 287.6 .1z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [512, 512, [9895, \"transgender-alt\"], \"f225\", \"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224c0 61.9 50.1 112 112 112s112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112z\"]\n};\nvar faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [640, 512, [], \"e547\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80c0-26.5-21.5-48-48-48S0 53.5 0 80s21.5 48 48 48s48-21.5 48-48zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"]\n};\nvar faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v80c-26.5 0-48 21.5-48 48s21.5 48 48 48v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V304c26.5 0 48-21.5 48-48s-21.5-48-48-48V128z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z\"]\n};\nvar faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [512, 512, [171, \"angle-double-left\"], \"f100\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M48 32C21.5 32 0 53.5 0 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm80 64v64H64V96h64zM48 288c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48zm80 64v64H64V352h64zM256 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H304c-26.5 0-48 21.5-48 48zm64 16h64v64H320V96zm32 352v32h32V448H352zm96 0H416v32h32V448zM416 288v32H352V288H256v96 96h64V384h32v32h96V352 320 288H416z\"]\n};\nvar faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [512, 512, [\"history\"], \"f1da\", \"M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [640, 512, [\"arrow-right-from-file\"], \"f56e\", \"M32 64C32 28.7 60.7 0 96 0H256V128c0 17.7 14.3 32 32 32H416V288H248c-13.3 0-24 10.7-24 24s10.7 24 24 24H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM416 336V288H526.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H416zm0-208H288V0L416 128z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [576, 512, [], \"e3b2\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zm-52.3-49.3c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [576, 512, [], \"e00d\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z\"]\n};\nvar faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [640, 512, [], \"e580\", \"M152.1 41.8c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120 488 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L118.5 72l33.5-30.2zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [640, 512, [], \"e582\", \"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H224V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [129365], \"f787\", \"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"]\n};\nvar faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm32-352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"]\n};\nvar faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [640, 512, [], \"f386\", \"M320 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M448 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm64 0c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [640, 512, [128692, \"biking\"], \"f84a\", \"M400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM200 384c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128s128-57.3 128-128zm328 0c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [129529], \"f51a\", \"M627.6 57.3c14-10.9 16.5-31 5.6-44.9s-31-16.5-44.9-5.6l-144 112-72 56-8.7 6.8-30.8-39.4c-3.7-4.8-9.8-7-15.8-5.8s-10.7 5.7-12.3 11.5l-12.5 46.3L371.1 295l48-.9c6.1-.1 11.5-3.7 14.1-9.1s1.9-11.9-1.8-16.7L403 231.9l8.6-6.7 72-56 144-112zM16.7 507.7c37.4 2.8 196.8 12 252.3-31.4c57.7-45.1 76.8-161.5 76.8-161.5L267.1 213.9s-117.6-9.6-175.3 35.5C69 267.1 50.5 304.1 36.3 344c-2.4 6.7 4.7 12.8 11 9.4L86.2 333c4.1-2.2 9.2-1.1 12 2.6s2.7 8.8-.4 12.3L24.4 430.4C13.2 442.9 5.5 458.1 2.4 474.5c-.9 4.8-1.6 8.9-2.2 12.1c-.9 5 .5 10.1 3.6 14.1s7.7 6.6 12.8 7z\"]\n};\nvar faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [62098], \"23\", \"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z\"]\n};\nvar faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM184 496H40c-13.3 0-24-10.7-24-24V328c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z\"]\n};\nvar faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm88 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM480 144c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"]\n};\nvar faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM512 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [640, 512, [], \"e538\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 160c44.2 0 80 35.8 80 80s-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80zM263.8 320c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [576, 512, [], \"e554\", \"M432 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"]\n};\nvar faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [256, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [640, 512, [], \"f73c\", \"M513.2 0C449 0 395.5 46.5 385.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM399.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C273.3 114.6 242.8 96 208 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H399.9zM117.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"]\n};\nvar faHaykal = faBahai;\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z\"]\n};\nvar faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 232c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [576, 512, [], \"e55d\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [640, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M0 448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H224c-53 0-96-43-96-96V160H64c-35.3 0-64 28.7-64 64V448zm224-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z\"]\n};\nvar faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"]\n};\nvar faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [576, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z\"]\n};\nvar faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"]\n};\nvar faQuran = faBookQuran;\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.3 382.1c-5.4 12.3 8.7 21.6 21.1 16.4c22.4-9.5 47.4-14.8 73.7-14.8s51.3 5.3 73.7 14.8c12.4 5.2 26.5-4.1 21.1-16.4c-16-36.6-52.4-62.1-94.8-62.1s-78.8 25.6-94.8 62.1zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM128 416c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"]\n};\nvar faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zM125.8 177.3L51.1 320H204.9L130.2 177.3c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3zM128 128c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 402.6 178.2 416 128 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 155c8.7-16.6 25.9-27 44.7-27zm384 48c-.9 0-1.7 .5-2.2 1.3L435.1 320H588.9L514.2 177.3c-.4-.8-1.3-1.3-2.2-1.3zm-44.7-21c8.7-16.6 25.9-27 44.7-27s36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 402.6 562.2 416 512 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 155z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm32-32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32H0zM32 64L58.6 46.2c-7.8-11.7-22.4-17-35.9-12.9S0 49.9 0 64l32 0zM224 352l-26.6 17.8c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L224 352zM416 64h32c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L416 64zM384 448c0 17.7 14.3 32 32 32s32-14.3 32-32H384zM64 448V64H0V448H64zM5.4 81.8l192 288 53.3-35.5-192-288L5.4 81.8zm245.3 288l192-288L389.4 46.2l-192 288 53.3 35.5zM384 64V448h64V64H384z\"]\n};\nvar faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [512, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z\"]\n};\nvar faThList = faTableList;\nvar faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM202.9 176.8c6.5-2.2 13.7 .1 17.9 5.6L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2zm173.1 38c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.2-.4-23.7-4.4-32.6-7.4l0 0 0 0c-1.4-.5-2.7-.9-4-1.4c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.7 .6 3.3 1.1 4.9 1.6l0 0 0 0c9.1 3.1 15.6 5.3 22.6 5.5c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4c-7.2-2.2-16.7-5-24.3-9.6c-9-5.4-17.7-14.7-17.7-29.4c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c10 .2 19.7 2.3 27.9 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-7.3-1.9-14.1-3.3-20.1-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9zm-272 0c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.3-.4-24.2-4.5-33.2-7.6l0 0 0 0c-1.3-.4-2.5-.8-3.6-1.2c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.4 .5 2.7 .9 4 1.4l0 0 0 0 0 0c9.5 3.2 16.5 5.6 23.7 5.8c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4 0 0c-7.2-2.2-16.7-5-24.3-9.6C80.8 239 72.1 229.7 72 215c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c9.5 .1 22.2 2.1 31.1 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-6.6-1.8-16.8-3.3-23.3-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9z\"]\n};\nvar faSms = faCommentSms;\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [10003, 10004], \"f00c\", \"M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [576, 512, [\"battery-4\"], \"f241\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm272 32V320H96V192H352z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [320, 512, [8249], \"f104\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [512, 512, [], \"e47a\", \"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [640, 512, [], \"e58b\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z\"]\n};\nvar faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32V144H128V32c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H32V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z\"]\n};\nvar faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 128c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM256 192c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm72 80c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [640, 512, [], \"e569\", \"M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z\"]\n};\nvar faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.6-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [640, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [128214, 128366], \"f518\", \"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C87.5 32 35.1 48.6 9 59.9c-5.6 2.4-9 8-9 14V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V73.9c0-6.1-3.4-11.6-9-14C540.9 48.6 488.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z\"]\n};\nvar faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.3-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.7-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-10-20.7-26.1-38-46.4-49.2c17 27.1 11 62.8-14 82.6c14.1 14.6 19.1 35.9 13.1 55.2c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-6-19.4-1-40.5 13.1-55.2c-25-19.9-31-55.5-14-82.6c-20.1 11.2-36.4 28.5-46.4 49.2l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [640, 512, [], \"e4f8\", \"M304 32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM192 112c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-32 16c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zM368 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"arrow-turn-right\", \"mail-forward\"], \"f064\", \"M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"]\n};\nvar faArrowTurnRight = faShare;\nvar faMailForward = faShare;\nvar faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [256, 512, [], \"e4c4\", \"M64 0C50.7 0 40 10.7 40 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C21.7 174.1 0 212.5 0 256V448c0 35.3 28.7 64 64 64H192c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H72l0 0 0 0L64 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C153.9 288.9 176 320.2 176 337c0 24.9-21.5 45-48 45z\"]\n};\nvar faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L277.3 424.9l-40.1 74.5c-5.2 9.7-16.3 14.6-27 11.9S192 499 192 488V392c0-5.3 1.8-10.5 5.1-14.7L362.4 164.7c2.5-7.1-6.5-14.3-13-8.4L170.4 318.2l-32 28.9 0 0c-9.2 8.3-22.3 10.6-33.8 5.8l-85-35.4C8.4 312.8 .8 302.2 .1 290s5.5-23.7 16.1-29.8l448-256c10.7-6.1 23.9-5.5 34 1.4z\"]\n};\nvar faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [576, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm91 .5c33.7-43.3 53.8-97.8 53.8-157s-20.1-113.6-53.8-157l12.4-12.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L413 53.8C369.6 20.1 315.2 0 256 0S142.4 20.1 99 53.8L86.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L53.8 99C20.1 142.4 0 196.8 0 256s20.1 113.6 53.8 157L41.4 425.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L99 458.2c43.3 33.7 97.8 53.8 157 53.8s113.6-20.1 157-53.8l12.4 12.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L458.2 413zm-45.7-45.7l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M154.9 162c.3 .7 .7 1.5 1.1 2.2l17.8 30.9c11.1-12.6 27.4-19.8 44.4-19.1l-20.7-35.8c-6.6-11.5-21.3-15.4-32.8-8.8c-10.8 6.2-14.9 19.5-9.9 30.6zm173.6 47C399.7 231.7 448 297.8 448 372.5c0 1.5 0 3-.1 4.5c39.7-25.6 64.1-69.7 64.1-117.4V136c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 81.7L347.8 16.5C341.2 5 326.5 1.1 315.1 7.7s-15.4 21.3-8.8 32.8l64 110.9c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9l-80-138.6C269.8 9.3 255.1 5.4 243.6 12s-15.4 21.3-8.8 32.8l80 138.6c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9L237 80.5c-6.6-11.5-21.3-15.4-32.8-8.8s-15.4 21.3-8.8 32.8l44 76.2L328.5 209zM64 488c0 12.4 9.4 22.6 21.5 23.9c.8 .1 1.6 .1 2.5 .1H288.7 296c66.3 0 120-53.7 120-120c0-1.2 0-2.4-.1-3.6c0-1.2 .1-2.5 .1-3.7c0-68-44-128.2-108.9-148.9l-83.9-26.7c-12.6-4-26.1 3-30.1 15.6s3 26.1 15.6 30.1L262.6 272H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H88c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [576, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [320, 512, [\"arrows-v\"], \"f07d\", \"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zm40.4-192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M416 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M178.3 506.3L40.3 368.3C35 363 32 355.8 32 348.3C32 332.7 44.7 320 60.3 320H144V112c0-8.8-7.2-16-16-16H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0h96c61.9 0 112 50.1 112 112V320h83.7c15.6 0 28.3 12.7 28.3 28.3c0 7.5-3 14.7-8.3 20L205.7 506.3C202 510 197.1 512 192 512s-10-2-13.7-5.7z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [640, 512, [], \"e552\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [127922], \"f522\", \"M252.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-184 184c-15.6 15.6-15.6 40.9 0 56.6l184 184c15.6 15.6 40.9 15.6 56.6 0l184-184c15.6-15.6 15.6-40.9 0-56.6l-184-184zM248 224c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM96 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm128 80c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm128-80c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM224 72c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm96 392c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H472.5c13.4 26.9 8.8 60.5-13.6 82.9L320 413.8V464zm160-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM240 144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z\"]\n};\nvar faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [640, 512, [129657, \"band-aid\"], \"f462\", \"M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM296 208c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-72 72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBandAid = faBandage;\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H312z\"]\n};\nvar faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H208V448h96v64H480c17.7 0 32-14.3 32-32s-14.3-32-32-32V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V112zM368 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM96 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V208zm144-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V208zm-3 152.2c3.3 12.8-7.8 23.8-21 23.8H184c-13.3 0-24.3-10.9-21-23.8c10.6-41.5 48.2-72.2 93-72.2s82.5 30.7 93 72.2z\"]\n};\nvar faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM144.5 348.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM496 288c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM272 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 48c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-48c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM352 448c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm-80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm-80-16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faAllergies = faHandDots;\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [640, 512, [\"coffee\"], \"f0f4\", \"M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M192 64L160 0H128L96 64 64 0H48C21.5 0 0 21.5 0 48V256H384V48c0-26.5-21.5-48-48-48H224L192 64zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm192 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"]\n};\nvar faUserLarge = {\n prefix: 'fas',\n iconName: 'user-large',\n icon: [512, 512, [\"user-alt\"], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0S112 64.5 112 144s64.5 144 144 144zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z\"]\n};\nvar faUserAlt = faUserLarge;\nvar faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [448, 512, [128650], \"e5b4\", \"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.7 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [128137], \"f48e\", \"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [9925], \"f6c4\", \"M122.4 1.2C127.6-.9 133.4-.2 137.9 3l70.3 50.3L278.5 3c4.5-3.2 10.3-3.9 15.4-1.8s8.8 6.7 9.7 12.2l14.1 85.3L403 112.8c5.4 .9 10.1 4.6 12.2 9.7s1.4 10.9-1.8 15.4l-38.8 54.3c-2.2-.1-4.3-.2-6.5-.2c-23.2 0-45 6.2-63.8 17c.1-12.5-2.2-25.3-7.3-37.6c-20.3-49-76.4-72.2-125.4-52s-72.2 76.4-52 125.4c18.3 44.3 66 67.5 111.1 56.6c-36.3 18.2-62.8 53.3-69.1 94.9l-23.6 16.9c-4.5 3.2-10.3 3.9-15.4 1.8s-8.8-6.7-9.7-12.2L98.7 317.7 13.4 303.6c-5.5-.9-10.1-4.6-12.2-9.7S-.2 282.9 3 278.5l50.3-70.3L3 137.9c-3.2-4.5-3.9-10.3-1.8-15.4s6.7-8.8 12.2-9.7L98.7 98.7l14.1-85.3c.9-5.5 4.6-10.1 9.7-12.2zM149 232.7c-13.5-32.7 2-70.1 34.6-83.6s70.1 2 83.6 34.6s-2 70.1-34.6 83.6s-70.1-2-83.6-34.6zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 0H512V512H0V0z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z\"]\n};\nvar faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z\"]\n};\nvar faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H290.7c17 0 33.3-6.7 45.3-18.7L429.3 368c12-12 18.7-28.3 18.7-45.3V96c0-35.3-28.7-64-64-64H64zm0 64H384V320H320c-17.7 0-32 14.3-32 32v64H64V96z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [640, 512, [], \"e490\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96zM160.3 256H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7V479.2z\"]\n};\nvar faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [576, 512, [], \"e4b6\", \"M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [576, 512, [129460], \"f5d7\", \"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z\"]\n};\nvar faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM303.6 208c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm-128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"]\n};\nvar faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [576, 512, [], \"e581\", \"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [128, 512, [10069, 10071, 61738], \"21\", \"M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM64 480c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [448, 512, [], \"e4bb\", \"M224 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H416c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C331.4 52.6 280.1 32 224 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM100.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C20.6 148.6 0 199.9 0 256c0 10.9 .8 21.5 2.3 32H67.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM445.7 224H380.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H416c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C427.4 363.4 448 312.1 448 256c0-10.9-.8-21.5-2.3-32zM224 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H32c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C116.6 459.4 167.9 480 224 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zm-16-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M128 32c17.7 0 32 14.3 32 32V99.3L279.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C410.5 399.8 326.1 480 223.8 480H128c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 117.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c10.6 1.6 42.1 6.7 55.1 10c17.1 4.3 27.5 21.7 23.2 38.9s-21.7 27.5-38.9 23.2c-9.3-2.4-37.6-7-48.9-8.7c-32.1-4.8-59.6-2.4-78.5 4.9c-18.3 7-25.9 16.9-27.9 28c-1.9 10.7-.5 16.8 1.3 20.6c1.9 4 5.6 8.5 12.9 13.4c16.2 10.8 41.1 17.9 73.3 26.7l2.8 .8c28.4 7.7 63.2 17.2 89 34.3c14.1 9.4 27.3 22.1 35.5 39.7c8.3 17.8 10.1 37.8 6.3 59.1c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.2-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.4 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.7 .5-16.8-1.3-20.6c-1.9-4-5.6-8.5-12.9-13.4c-16.2-10.8-41.1-17.9-73.3-26.7l-2.8-.8c-28.4-7.7-63.2-17.2-89-34.3c-14.1-9.4-27.3-22.1-35.5-39.7c-8.3-17.8-10.1-37.8-6.3-59.1C25 114.1 53 89.3 86 76.7c13-5 27.2-8.2 42-10V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M144 160c44.2 0 80-35.8 80-80s-35.8-80-80-80S64 35.8 64 80s35.8 80 80 80zm368 0c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3L574.4 311c-8.9-7.6-19.1-13.6-30.4-17.6v-21c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v21c-11.2 4-21.5 10-30.4 17.6l-18.2-10.5c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l18.2 10.5c-1 5.7-1.6 11.6-1.6 17.6s.6 11.9 1.6 17.5l-18.2 10.5c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3L449.6 457c8.9 7.6 19.2 13.6 30.4 17.6v21c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-21c11.2-4 21.5-10 30.4-17.6l18.2 10.5c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-18.2-10.5c1-5.7 1.6-11.6 1.6-17.5s-.6-11.9-1.6-17.6l18.2-10.5zM552 384c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [576, 512, [], \"e54a\", \"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z\"]\n};\nvar faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8.1-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zm128-96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [640, 512, [], \"f0e9\", \"M320 0c17.7 0 32 14.3 32 32V49.7C483.8 63.4 589.7 161 605.9 285.9c2 15.6-17.3 24.4-27.8 12.7C564.1 283 536.8 272 512 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C391 299.5 358.7 272 320 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C199 299.5 166.7 272 128 272c-24.8 0-52.1 11-66.1 26.7c-10.5 11.7-29.8 2.9-27.8-12.7C50.3 161 156.2 63.4 288 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z\"]\n};\nvar faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [512, 512, [], \"e589\", \"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32H160c123.7 0 224 100.3 224 224s-100.3 224-224 224H32c-17.7 0-32-14.3-32-32V64zM64 96V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160H64z\"]\n};\nvar faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z\"]\n};\nvar faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [640, 512, [127917, \"theater-masks\"], \"f630\", \"M399.3 509.7c-58.2-8.8-108.2-72.8-137.6-119.7c-20-31.9-25.1-70.3-19.6-107.7L266.3 118c1.4-9.8 5.1-19.2 12.9-25.2c20.2-15.6 72.4-41.5 185.1-24.5s155.2 57.4 170 78.3c5.7 8 6.5 18.1 5.1 27.9L615.2 338.8c-5.5 37.3-21.5 72.6-49.8 97.2c-41.7 36.1-108 82.5-166.1 73.7zm17.1-277.7c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8c4.4 3.1 10.8 2 11.8-3.3zm112.6 22.2c4.4 3.1 10.8 2 11.8-3.3c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8zm-11.5 85.2c-28.8 12.8-61.4 17.8-94.9 12.8s-63.2-19.5-87-40.3c-6.3-5.5-16.2-1.7-15.2 6.7c5.9 48.5 43 89.1 93 96.7s97.2-20.2 116.8-64.9c3.4-7.7-5-14.3-12.6-10.9zM240.7 446.9c-58.2 8.8-124.5-37.5-166.1-73.7c-28.3-24.5-44.3-59.8-49.8-97.2L.6 111.8C-.8 102 0 91.9 5.7 83.9C20.5 63 63 22.7 175.7 5.6s164.9 8.9 185.1 24.5c.9 .7 1.7 1.4 2.4 2.1c-52.8 4.8-85.1 21-103.6 35.3c-17 13.1-23 32-25 45.9L215.3 244.7c-2.6 .1-5.2 .4-7.9 .8c-35.2 5.3-61.8 32.7-68.2 66.3c-1.6 8.2 8.3 12.2 14.8 7c15.6-12.4 34.1-21.3 54.7-25.4c-3 38.4 4 78.7 25.9 113.6c6.9 11 15 23.1 24.2 35.4c-5.9 2.1-11.9 3.6-18 4.5zM174.1 157c-1-5.3-7.4-6.4-11.8-3.3c-7.7 5.5-16.8 9.3-26.8 10.8s-19.8 .6-28.7-2.4c-5.1-1.7-10.9 1.3-10.3 6.7c.1 .5 .1 1.1 .2 1.6c3.2 21.8 23.2 36.8 44.7 33.5s36.3-23.5 33.1-45.3c-.1-.5-.2-1.1-.3-1.6z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0V96L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm-64-64c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H224zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32H352c88.4 0 160-71.6 160-160V226.3c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64v88c0 22.1 17.9 40 40 40s40-17.9 40-40V160c0-8.8 7.2-16 16-16s16 7.2 16 16v56c0 39.8-32.2 72-72 72z\"]\n};\nvar faHandshakeSimple = {\n prefix: 'fas',\n iconName: 'handshake-simple',\n icon: [640, 512, [129309, \"handshake-alt\"], \"f4c6\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"]\n};\nvar faHandshakeAlt = faHandshakeSimple;\nvar faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [640, 512, [\"fighter-jet\"], \"f0fb\", \"M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"]\n};\nvar faVideoCamera = faVideo;\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [127891, \"mortar-board\"], \"f19d\", \"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [576, 512, [], \"e53e\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M178.3 5.7L40.3 143.7C35 149 32 156.2 32 163.7C32 179.3 44.7 192 60.3 192H144V400c0 8.8-7.2 16-16 16H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96c61.9 0 112-50.1 112-112V192h83.7c15.6 0 28.3-12.7 28.3-28.3c0-7.5-3-14.7-8.3-20L205.7 5.7C202 2 197.1 0 192 0s-10 2-13.7 5.7z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar icons = {\n fa0: fa0,\n fa1: fa1,\n fa2: fa2,\n fa3: fa3,\n fa4: fa4,\n fa5: fa5,\n fa6: fa6,\n fa7: fa7,\n fa8: fa8,\n fa9: fa9,\n faFillDrip: faFillDrip,\n faArrowsToCircle: faArrowsToCircle,\n faCircleChevronRight: faCircleChevronRight,\n faChevronCircleRight: faChevronCircleRight,\n faAt: faAt,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faTextHeight: faTextHeight,\n faUserXmark: faUserXmark,\n faUserTimes: faUserTimes,\n faStethoscope: faStethoscope,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faInfo: faInfo,\n faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n faCompressAlt: faCompressAlt,\n faExplosion: faExplosion,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faWaveSquare: faWaveSquare,\n faRing: faRing,\n faBuildingUn: faBuildingUn,\n faDiceThree: faDiceThree,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faAnchorCircleCheck: faAnchorCircleCheck,\n faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n faVolleyball: faVolleyball,\n faVolleyballBall: faVolleyballBall,\n faArrowsUpToLine: faArrowsUpToLine,\n faSortDown: faSortDown,\n faSortDesc: faSortDesc,\n faCircleMinus: faCircleMinus,\n faMinusCircle: faMinusCircle,\n faDoorOpen: faDoorOpen,\n faRightFromBracket: faRightFromBracket,\n faSignOutAlt: faSignOutAlt,\n faAtom: faAtom,\n faSoap: faSoap,\n faIcons: faIcons,\n faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faBridgeCircleCheck: faBridgeCircleCheck,\n faPumpMedical: faPumpMedical,\n faFingerprint: faFingerprint,\n faHandPointRight: faHandPointRight,\n faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n faSearchLocation: faSearchLocation,\n faForwardStep: faForwardStep,\n faStepForward: faStepForward,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFlagCheckered: faFlagCheckered,\n faFootball: faFootball,\n faFootballBall: faFootballBall,\n faSchoolCircleExclamation: faSchoolCircleExclamation,\n faCrop: faCrop,\n faAnglesDown: faAnglesDown,\n faAngleDoubleDown: faAngleDoubleDown,\n faUsersRectangle: faUsersRectangle,\n faPeopleRoof: faPeopleRoof,\n faPeopleLine: faPeopleLine,\n faBeerMugEmpty: faBeerMugEmpty,\n faBeer: faBeer,\n faDiagramPredecessor: faDiagramPredecessor,\n faArrowUpLong: faArrowUpLong,\n faLongArrowUp: faLongArrowUp,\n faFireFlameSimple: faFireFlameSimple,\n faBurn: faBurn,\n faPerson: faPerson,\n faMale: faMale,\n faLaptop: faLaptop,\n faFileCsv: faFileCsv,\n faMenorah: faMenorah,\n faTruckPlane: faTruckPlane,\n faRecordVinyl: faRecordVinyl,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faBong: faBong,\n faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n faPastafarianism: faPastafarianism,\n faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n faSpoon: faSpoon,\n faUtensilSpoon: faUtensilSpoon,\n faJarWheat: faJarWheat,\n faEnvelopesBulk: faEnvelopesBulk,\n faMailBulk: faMailBulk,\n faFileCircleExclamation: faFileCircleExclamation,\n faCircleH: faCircleH,\n faHospitalSymbol: faHospitalSymbol,\n faPager: faPager,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faStrikethrough: faStrikethrough,\n faK: faK,\n faLandmarkFlag: faLandmarkFlag,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faBackward: faBackward,\n faCaretRight: faCaretRight,\n faComments: faComments,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faCodePullRequest: faCodePullRequest,\n faClipboardList: faClipboardList,\n faTruckRampBox: faTruckRampBox,\n faTruckLoading: faTruckLoading,\n faUserCheck: faUserCheck,\n faVialVirus: faVialVirus,\n faSheetPlastic: faSheetPlastic,\n faBlog: faBlog,\n faUserNinja: faUserNinja,\n faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n faScrollTorah: faScrollTorah,\n faTorah: faTorah,\n faBroomBall: faBroomBall,\n faQuidditch: faQuidditch,\n faQuidditchBroomBall: faQuidditchBroomBall,\n faToggleOff: faToggleOff,\n faBoxArchive: faBoxArchive,\n faArchive: faArchive,\n faPersonDrowning: faPersonDrowning,\n faArrowDown91: faArrowDown91,\n faSortNumericDesc: faSortNumericDesc,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faSprayCan: faSprayCan,\n faTruckMonster: faTruckMonster,\n faW: faW,\n faEarthAfrica: faEarthAfrica,\n faGlobeAfrica: faGlobeAfrica,\n faRainbow: faRainbow,\n faCircleNotch: faCircleNotch,\n faTabletScreenButton: faTabletScreenButton,\n faTabletAlt: faTabletAlt,\n faPaw: faPaw,\n faCloud: faCloud,\n faTrowelBricks: faTrowelBricks,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faHospitalUser: faHospitalUser,\n faTentArrowLeftRight: faTentArrowLeftRight,\n faGavel: faGavel,\n faLegal: faLegal,\n faBinoculars: faBinoculars,\n faMicrophoneSlash: faMicrophoneSlash,\n faBoxTissue: faBoxTissue,\n faMotorcycle: faMotorcycle,\n faBellConcierge: faBellConcierge,\n faConciergeBell: faConciergeBell,\n faPenRuler: faPenRuler,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n faMarsAndVenusBurst: faMarsAndVenusBurst,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faScissors: faScissors,\n faCut: faCut,\n faSunPlantWilt: faSunPlantWilt,\n faToiletsPortable: faToiletsPortable,\n faHockeyPuck: faHockeyPuck,\n faTable: faTable,\n faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n faTachographDigital: faTachographDigital,\n faDigitalTachograph: faDigitalTachograph,\n faUsersSlash: faUsersSlash,\n faClover: faClover,\n faReply: faReply,\n faMailReply: faMailReply,\n faStarAndCrescent: faStarAndCrescent,\n faHouseFire: faHouseFire,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faHelicopter: faHelicopter,\n faCompass: faCompass,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faFileCircleQuestion: faFileCircleQuestion,\n faLaptopCode: faLaptopCode,\n faSwatchbook: faSwatchbook,\n faPrescriptionBottle: faPrescriptionBottle,\n faBars: faBars,\n faNavicon: faNavicon,\n faPeopleGroup: faPeopleGroup,\n faHourglassEnd: faHourglassEnd,\n faHourglass3: faHourglass3,\n faHeartCrack: faHeartCrack,\n faHeartBroken: faHeartBroken,\n faSquareUpRight: faSquareUpRight,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faFilm: faFilm,\n faRulerHorizontal: faRulerHorizontal,\n faPeopleRobbery: faPeopleRobbery,\n faLightbulb: faLightbulb,\n faCaretLeft: faCaretLeft,\n faCircleExclamation: faCircleExclamation,\n faExclamationCircle: faExclamationCircle,\n faSchoolCircleXmark: faSchoolCircleXmark,\n faArrowRightFromBracket: faArrowRightFromBracket,\n faSignOut: faSignOut,\n faCircleChevronDown: faCircleChevronDown,\n faChevronCircleDown: faChevronCircleDown,\n faUnlockKeyhole: faUnlockKeyhole,\n faUnlockAlt: faUnlockAlt,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faHeadphonesSimple: faHeadphonesSimple,\n faHeadphonesAlt: faHeadphonesAlt,\n faSitemap: faSitemap,\n faCircleDollarToSlot: faCircleDollarToSlot,\n faDonate: faDonate,\n faMemory: faMemory,\n faRoadSpikes: faRoadSpikes,\n faFireBurner: faFireBurner,\n faFlag: faFlag,\n faHanukiah: faHanukiah,\n faFeather: faFeather,\n faVolumeLow: faVolumeLow,\n faVolumeDown: faVolumeDown,\n faCommentSlash: faCommentSlash,\n faCloudSunRain: faCloudSunRain,\n faCompress: faCompress,\n faWheatAwn: faWheatAwn,\n faWheatAlt: faWheatAlt,\n faAnkh: faAnkh,\n faHandsHoldingChild: faHandsHoldingChild,\n faAsterisk: faAsterisk,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faPesetaSign: faPesetaSign,\n faHeading: faHeading,\n faHeader: faHeader,\n faGhost: faGhost,\n faList: faList,\n faListSquares: faListSquares,\n faSquarePhoneFlip: faSquarePhoneFlip,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faCartPlus: faCartPlus,\n faGamepad: faGamepad,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faEgg: faEgg,\n faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n faCampground: faCampground,\n faFolderPlus: faFolderPlus,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faPaintbrush: faPaintbrush,\n faPaintBrush: faPaintBrush,\n faLock: faLock,\n faGasPump: faGasPump,\n faHotTubPerson: faHotTubPerson,\n faHotTub: faHotTub,\n faMapLocation: faMapLocation,\n faMapMarked: faMapMarked,\n faHouseFloodWater: faHouseFloodWater,\n faTree: faTree,\n faBridgeLock: faBridgeLock,\n faSackDollar: faSackDollar,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faCarSide: faCarSide,\n faShareNodes: faShareNodes,\n faShareAlt: faShareAlt,\n faHeartCircleMinus: faHeartCircleMinus,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faMicroscope: faMicroscope,\n faSink: faSink,\n faBagShopping: faBagShopping,\n faShoppingBag: faShoppingBag,\n faArrowDownZA: faArrowDownZA,\n faSortAlphaDesc: faSortAlphaDesc,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faMitten: faMitten,\n faPersonRays: faPersonRays,\n faUsers: faUsers,\n faEyeSlash: faEyeSlash,\n faFlaskVial: faFlaskVial,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faOm: faOm,\n faWorm: faWorm,\n faHouseCircleXmark: faHouseCircleXmark,\n faPlug: faPlug,\n faChevronUp: faChevronUp,\n faHandSpock: faHandSpock,\n faStopwatch: faStopwatch,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faBridgeCircleXmark: faBridgeCircleXmark,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faChessBishop: faChessBishop,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faEarDeaf: faEarDeaf,\n faDeaf: faDeaf,\n faDeafness: faDeafness,\n faHardOfHearing: faHardOfHearing,\n faRoadCircleCheck: faRoadCircleCheck,\n faDiceFive: faDiceFive,\n faSquareRss: faSquareRss,\n faRssSquare: faRssSquare,\n faLandMineOn: faLandMineOn,\n faICursor: faICursor,\n faStamp: faStamp,\n faStairs: faStairs,\n faI: faI,\n faHryvniaSign: faHryvniaSign,\n faHryvnia: faHryvnia,\n faPills: faPills,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faTooth: faTooth,\n faV: faV,\n faBicycle: faBicycle,\n faStaffSnake: faStaffSnake,\n faRodAsclepius: faRodAsclepius,\n faRodSnake: faRodSnake,\n faStaffAesculapius: faStaffAesculapius,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faTruckMedical: faTruckMedical,\n faAmbulance: faAmbulance,\n faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n faSnowman: faSnowman,\n faMortarPestle: faMortarPestle,\n faRoadBarrier: faRoadBarrier,\n faSchool: faSchool,\n faIgloo: faIgloo,\n faJoint: faJoint,\n faAngleRight: faAngleRight,\n faHorse: faHorse,\n faQ: faQ,\n faG: faG,\n faNotesMedical: faNotesMedical,\n faTemperatureHalf: faTemperatureHalf,\n faTemperature2: faTemperature2,\n faThermometer2: faThermometer2,\n faThermometerHalf: faThermometerHalf,\n faDongSign: faDongSign,\n faCapsules: faCapsules,\n faPooStorm: faPooStorm,\n faPooBolt: faPooBolt,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faHandPointUp: faHandPointUp,\n faMoneyBill: faMoneyBill,\n faBookmark: faBookmark,\n faAlignJustify: faAlignJustify,\n faUmbrellaBeach: faUmbrellaBeach,\n faHelmetUn: faHelmetUn,\n faBullseye: faBullseye,\n faBacon: faBacon,\n faHandPointDown: faHandPointDown,\n faArrowUpFromBracket: faArrowUpFromBracket,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faFileWaveform: faFileWaveform,\n faFileMedicalAlt: faFileMedicalAlt,\n faRadiation: faRadiation,\n faChartSimple: faChartSimple,\n faMarsStroke: faMarsStroke,\n faVial: faVial,\n faGauge: faGauge,\n faDashboard: faDashboard,\n faGaugeMed: faGaugeMed,\n faTachometerAltAverage: faTachometerAltAverage,\n faWandMagicSparkles: faWandMagicSparkles,\n faMagicWandSparkles: faMagicWandSparkles,\n faE: faE,\n faPenClip: faPenClip,\n faPenAlt: faPenAlt,\n faBridgeCircleExclamation: faBridgeCircleExclamation,\n faUser: faUser,\n faSchoolCircleCheck: faSchoolCircleCheck,\n faDumpster: faDumpster,\n faVanShuttle: faVanShuttle,\n faShuttleVan: faShuttleVan,\n faBuildingUser: faBuildingUser,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faHighlighter: faHighlighter,\n faKey: faKey,\n faBullhorn: faBullhorn,\n faGlobe: faGlobe,\n faSynagogue: faSynagogue,\n faPersonHalfDress: faPersonHalfDress,\n faRoadBridge: faRoadBridge,\n faLocationArrow: faLocationArrow,\n faC: faC,\n faTabletButton: faTabletButton,\n faBuildingLock: faBuildingLock,\n faPizzaSlice: faPizzaSlice,\n faMoneyBillWave: faMoneyBillWave,\n faChartArea: faChartArea,\n faAreaChart: faAreaChart,\n faHouseFlag: faHouseFlag,\n faPersonCircleMinus: faPersonCircleMinus,\n faBan: faBan,\n faCancel: faCancel,\n faCameraRotate: faCameraRotate,\n faSprayCanSparkles: faSprayCanSparkles,\n faAirFreshener: faAirFreshener,\n faStar: faStar,\n faRepeat: faRepeat,\n faCross: faCross,\n faBox: faBox,\n faVenusMars: faVenusMars,\n faArrowPointer: faArrowPointer,\n faMousePointer: faMousePointer,\n faMaximize: faMaximize,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faChargingStation: faChargingStation,\n faShapes: faShapes,\n faTriangleCircleSquare: faTriangleCircleSquare,\n faShuffle: faShuffle,\n faRandom: faRandom,\n faPersonRunning: faPersonRunning,\n faRunning: faRunning,\n faMobileRetro: faMobileRetro,\n faGripLinesVertical: faGripLinesVertical,\n faSpider: faSpider,\n faHandsBound: faHandsBound,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faPlaneCircleExclamation: faPlaneCircleExclamation,\n faXRay: faXRay,\n faSpellCheck: faSpellCheck,\n faSlash: faSlash,\n faComputerMouse: faComputerMouse,\n faMouse: faMouse,\n faArrowRightToBracket: faArrowRightToBracket,\n faSignIn: faSignIn,\n faShopSlash: faShopSlash,\n faStoreAltSlash: faStoreAltSlash,\n faServer: faServer,\n faVirusCovidSlash: faVirusCovidSlash,\n faShopLock: faShopLock,\n faHourglassStart: faHourglassStart,\n faHourglass1: faHourglass1,\n faBlenderPhone: faBlenderPhone,\n faBuildingWheat: faBuildingWheat,\n faPersonBreastfeeding: faPersonBreastfeeding,\n faRightToBracket: faRightToBracket,\n faSignInAlt: faSignInAlt,\n faVenus: faVenus,\n faPassport: faPassport,\n faHeartPulse: faHeartPulse,\n faHeartbeat: faHeartbeat,\n faPeopleCarryBox: faPeopleCarryBox,\n faPeopleCarry: faPeopleCarry,\n faTemperatureHigh: faTemperatureHigh,\n faMicrochip: faMicrochip,\n faCrown: faCrown,\n faWeightHanging: faWeightHanging,\n faXmarksLines: faXmarksLines,\n faFilePrescription: faFilePrescription,\n faWeightScale: faWeightScale,\n faWeight: faWeight,\n faUserGroup: faUserGroup,\n faUserFriends: faUserFriends,\n faArrowUpAZ: faArrowUpAZ,\n faSortAlphaUp: faSortAlphaUp,\n faChessKnight: faChessKnight,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faWheelchair: faWheelchair,\n faCircleArrowUp: faCircleArrowUp,\n faArrowCircleUp: faArrowCircleUp,\n faToggleOn: faToggleOn,\n faPersonWalking: faPersonWalking,\n faWalking: faWalking,\n faL: faL,\n faFire: faFire,\n faBedPulse: faBedPulse,\n faProcedures: faProcedures,\n faShuttleSpace: faShuttleSpace,\n faSpaceShuttle: faSpaceShuttle,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faFolderOpen: faFolderOpen,\n faHeartCirclePlus: faHeartCirclePlus,\n faCodeFork: faCodeFork,\n faCity: faCity,\n faMicrophoneLines: faMicrophoneLines,\n faMicrophoneAlt: faMicrophoneAlt,\n faPepperHot: faPepperHot,\n faUnlock: faUnlock,\n faColonSign: faColonSign,\n faHeadset: faHeadset,\n faStoreSlash: faStoreSlash,\n faRoadCircleXmark: faRoadCircleXmark,\n faUserMinus: faUserMinus,\n faMarsStrokeUp: faMarsStrokeUp,\n faMarsStrokeV: faMarsStrokeV,\n faChampagneGlasses: faChampagneGlasses,\n faGlassCheers: faGlassCheers,\n faClipboard: faClipboard,\n faHouseCircleExclamation: faHouseCircleExclamation,\n faFileArrowUp: faFileArrowUp,\n faFileUpload: faFileUpload,\n faWifi: faWifi,\n faWifi3: faWifi3,\n faWifiStrong: faWifiStrong,\n faBath: faBath,\n faBathtub: faBathtub,\n faUnderline: faUnderline,\n faUserPen: faUserPen,\n faUserEdit: faUserEdit,\n faSignature: faSignature,\n faStroopwafel: faStroopwafel,\n faBold: faBold,\n faAnchorLock: faAnchorLock,\n faBuildingNgo: faBuildingNgo,\n faManatSign: faManatSign,\n faNotEqual: faNotEqual,\n faBorderTopLeft: faBorderTopLeft,\n faBorderStyle: faBorderStyle,\n faMapLocationDot: faMapLocationDot,\n faMapMarkedAlt: faMapMarkedAlt,\n faJedi: faJedi,\n faSquarePollVertical: faSquarePollVertical,\n faPoll: faPoll,\n faMugHot: faMugHot,\n faCarBattery: faCarBattery,\n faBatteryCar: faBatteryCar,\n faGift: faGift,\n faDiceTwo: faDiceTwo,\n faChessQueen: faChessQueen,\n faGlasses: faGlasses,\n faChessBoard: faChessBoard,\n faBuildingCircleCheck: faBuildingCircleCheck,\n faPersonChalkboard: faPersonChalkboard,\n faMarsStrokeRight: faMarsStrokeRight,\n faMarsStrokeH: faMarsStrokeH,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faCloudShowersWater: faCloudShowersWater,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faHandsBubbles: faHandsBubbles,\n faHandsWash: faHandsWash,\n faLessThanEqual: faLessThanEqual,\n faTrain: faTrain,\n faEyeLowVision: faEyeLowVision,\n faLowVision: faLowVision,\n faCrow: faCrow,\n faSailboat: faSailboat,\n faWindowRestore: faWindowRestore,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faToriiGate: faToriiGate,\n faFrog: faFrog,\n faBucket: faBucket,\n faImage: faImage,\n faMicrophone: faMicrophone,\n faCow: faCow,\n faCaretUp: faCaretUp,\n faScrewdriver: faScrewdriver,\n faFolderClosed: faFolderClosed,\n faHouseTsunami: faHouseTsunami,\n faSquareNfi: faSquareNfi,\n faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n faMartiniGlass: faMartiniGlass,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faRotateLeft: faRotateLeft,\n faRotateBack: faRotateBack,\n faRotateBackward: faRotateBackward,\n faUndoAlt: faUndoAlt,\n faTableColumns: faTableColumns,\n faColumns: faColumns,\n faLemon: faLemon,\n faHeadSideMask: faHeadSideMask,\n faHandshake: faHandshake,\n faGem: faGem,\n faDolly: faDolly,\n faDollyBox: faDollyBox,\n faSmoking: faSmoking,\n faMinimize: faMinimize,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faMonument: faMonument,\n faSnowplow: faSnowplow,\n faAnglesRight: faAnglesRight,\n faAngleDoubleRight: faAngleDoubleRight,\n faCannabis: faCannabis,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faTablets: faTablets,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faEur: faEur,\n faEuro: faEuro,\n faChair: faChair,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faCompassDrafting: faCompassDrafting,\n faDraftingCompass: faDraftingCompass,\n faPlateWheat: faPlateWheat,\n faIcicles: faIcicles,\n faPersonShelter: faPersonShelter,\n faNeuter: faNeuter,\n faIdBadge: faIdBadge,\n faMarker: faMarker,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faHelicopterSymbol: faHelicopterSymbol,\n faUniversalAccess: faUniversalAccess,\n faCircleChevronUp: faCircleChevronUp,\n faChevronCircleUp: faChevronCircleUp,\n faLariSign: faLariSign,\n faVolcano: faVolcano,\n faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n faSterlingSign: faSterlingSign,\n faGbp: faGbp,\n faPoundSign: faPoundSign,\n faViruses: faViruses,\n faSquarePersonConfined: faSquarePersonConfined,\n faUserTie: faUserTie,\n faArrowDownLong: faArrowDownLong,\n faLongArrowDown: faLongArrowDown,\n faTentArrowDownToLine: faTentArrowDownToLine,\n faCertificate: faCertificate,\n faReplyAll: faReplyAll,\n faMailReplyAll: faMailReplyAll,\n faSuitcase: faSuitcase,\n faPersonSkating: faPersonSkating,\n faSkating: faSkating,\n faFilterCircleDollar: faFilterCircleDollar,\n faFunnelDollar: faFunnelDollar,\n faCameraRetro: faCameraRetro,\n faCircleArrowDown: faCircleArrowDown,\n faArrowCircleDown: faArrowCircleDown,\n faFileImport: faFileImport,\n faArrowRightToFile: faArrowRightToFile,\n faSquareArrowUpRight: faSquareArrowUpRight,\n faExternalLinkSquare: faExternalLinkSquare,\n faBoxOpen: faBoxOpen,\n faScroll: faScroll,\n faSpa: faSpa,\n faLocationPinLock: faLocationPinLock,\n faPause: faPause,\n faHillAvalanche: faHillAvalanche,\n faTemperatureEmpty: faTemperatureEmpty,\n faTemperature0: faTemperature0,\n faThermometer0: faThermometer0,\n faThermometerEmpty: faThermometerEmpty,\n faBomb: faBomb,\n faRegistered: faRegistered,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n faBalanceScaleRight: faBalanceScaleRight,\n faSubscript: faSubscript,\n faDiamondTurnRight: faDiamondTurnRight,\n faDirections: faDirections,\n faBurst: faBurst,\n faHouseLaptop: faHouseLaptop,\n faLaptopHouse: faLaptopHouse,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faMoneyBills: faMoneyBills,\n faSmog: faSmog,\n faCrutch: faCrutch,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faCloudArrowUp: faCloudArrowUp,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faPalette: faPalette,\n faArrowsTurnRight: faArrowsTurnRight,\n faVest: faVest,\n faFerry: faFerry,\n faArrowsDownToPeople: faArrowsDownToPeople,\n faSeedling: faSeedling,\n faSprout: faSprout,\n faLeftRight: faLeftRight,\n faArrowsAltH: faArrowsAltH,\n faBoxesPacking: faBoxesPacking,\n faCircleArrowLeft: faCircleArrowLeft,\n faArrowCircleLeft: faArrowCircleLeft,\n faGroupArrowsRotate: faGroupArrowsRotate,\n faBowlFood: faBowlFood,\n faCandyCane: faCandyCane,\n faArrowDownWideShort: faArrowDownWideShort,\n faSortAmountAsc: faSortAmountAsc,\n faSortAmountDown: faSortAmountDown,\n faCloudBolt: faCloudBolt,\n faThunderstorm: faThunderstorm,\n faTextSlash: faTextSlash,\n faRemoveFormat: faRemoveFormat,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFileWord: faFileWord,\n faFilePowerpoint: faFilePowerpoint,\n faArrowsLeftRight: faArrowsLeftRight,\n faArrowsH: faArrowsH,\n faHouseLock: faHouseLock,\n faCloudArrowDown: faCloudArrowDown,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faChildren: faChildren,\n faChalkboard: faChalkboard,\n faBlackboard: faBlackboard,\n faUserLargeSlash: faUserLargeSlash,\n faUserAltSlash: faUserAltSlash,\n faEnvelopeOpen: faEnvelopeOpen,\n faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faMattressPillow: faMattressPillow,\n faGuaraniSign: faGuaraniSign,\n faArrowsRotate: faArrowsRotate,\n faRefresh: faRefresh,\n faSync: faSync,\n faFireExtinguisher: faFireExtinguisher,\n faCruzeiroSign: faCruzeiroSign,\n faGreaterThanEqual: faGreaterThanEqual,\n faShieldHalved: faShieldHalved,\n faShieldAlt: faShieldAlt,\n faBookAtlas: faBookAtlas,\n faAtlas: faAtlas,\n faVirus: faVirus,\n faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n faLayerGroup: faLayerGroup,\n faArrowsToDot: faArrowsToDot,\n faArchway: faArchway,\n faHeartCircleCheck: faHeartCircleCheck,\n faHouseChimneyCrack: faHouseChimneyCrack,\n faHouseDamage: faHouseDamage,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faSquare: faSquare,\n faMartiniGlassEmpty: faMartiniGlassEmpty,\n faGlassMartini: faGlassMartini,\n faCouch: faCouch,\n faCediSign: faCediSign,\n faItalic: faItalic,\n faChurch: faChurch,\n faCommentsDollar: faCommentsDollar,\n faDemocrat: faDemocrat,\n faZ: faZ,\n faPersonSkiing: faPersonSkiing,\n faSkiing: faSkiing,\n faRoadLock: faRoadLock,\n faA: faA,\n faTemperatureArrowDown: faTemperatureArrowDown,\n faTemperatureDown: faTemperatureDown,\n faFeatherPointed: faFeatherPointed,\n faFeatherAlt: faFeatherAlt,\n faP: faP,\n faSnowflake: faSnowflake,\n faNewspaper: faNewspaper,\n faRectangleAd: faRectangleAd,\n faAd: faAd,\n faCircleArrowRight: faCircleArrowRight,\n faArrowCircleRight: faArrowCircleRight,\n faFilterCircleXmark: faFilterCircleXmark,\n faLocust: faLocust,\n faSort: faSort,\n faUnsorted: faUnsorted,\n faListOl: faListOl,\n faList12: faList12,\n faListNumeric: faListNumeric,\n faPersonDressBurst: faPersonDressBurst,\n faMoneyCheckDollar: faMoneyCheckDollar,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faVectorSquare: faVectorSquare,\n faBreadSlice: faBreadSlice,\n faLanguage: faLanguage,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faFilter: faFilter,\n faQuestion: faQuestion,\n faFileSignature: faFileSignature,\n faUpDownLeftRight: faUpDownLeftRight,\n faArrowsAlt: faArrowsAlt,\n faHouseChimneyUser: faHouseChimneyUser,\n faHandHoldingHeart: faHandHoldingHeart,\n faPuzzlePiece: faPuzzlePiece,\n faMoneyCheck: faMoneyCheck,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faCode: faCode,\n faWhiskeyGlass: faWhiskeyGlass,\n faGlassWhiskey: faGlassWhiskey,\n faBuildingCircleExclamation: faBuildingCircleExclamation,\n faMagnifyingGlassChart: faMagnifyingGlassChart,\n faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n faExternalLink: faExternalLink,\n faCubesStacked: faCubesStacked,\n faWonSign: faWonSign,\n faKrw: faKrw,\n faWon: faWon,\n faVirusCovid: faVirusCovid,\n faAustralSign: faAustralSign,\n faF: faF,\n faLeaf: faLeaf,\n faRoad: faRoad,\n faTaxi: faTaxi,\n faCab: faCab,\n faPersonCirclePlus: faPersonCirclePlus,\n faChartPie: faChartPie,\n faPieChart: faPieChart,\n faBoltLightning: faBoltLightning,\n faSackXmark: faSackXmark,\n faFileExcel: faFileExcel,\n faFileContract: faFileContract,\n faFishFins: faFishFins,\n faBuildingFlag: faBuildingFlag,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faObjectUngroup: faObjectUngroup,\n faPoop: faPoop,\n faLocationPin: faLocationPin,\n faMapMarker: faMapMarker,\n faKaaba: faKaaba,\n faToiletPaper: faToiletPaper,\n faHelmetSafety: faHelmetSafety,\n faHardHat: faHardHat,\n faHatHard: faHatHard,\n faEject: faEject,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faPlaneCircleCheck: faPlaneCircleCheck,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faObjectGroup: faObjectGroup,\n faChartLine: faChartLine,\n faLineChart: faLineChart,\n faMaskVentilator: faMaskVentilator,\n faArrowRight: faArrowRight,\n faSignsPost: faSignsPost,\n faMapSigns: faMapSigns,\n faCashRegister: faCashRegister,\n faPersonCircleQuestion: faPersonCircleQuestion,\n faH: faH,\n faTarp: faTarp,\n faScrewdriverWrench: faScrewdriverWrench,\n faTools: faTools,\n faArrowsToEye: faArrowsToEye,\n faPlugCircleBolt: faPlugCircleBolt,\n faHeart: faHeart,\n faMarsAndVenus: faMarsAndVenus,\n faHouseUser: faHouseUser,\n faHomeUser: faHomeUser,\n faDumpsterFire: faDumpsterFire,\n faHouseCrack: faHouseCrack,\n faMartiniGlassCitrus: faMartiniGlassCitrus,\n faCocktail: faCocktail,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faBottleWater: faBottleWater,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faToiletPaperSlash: faToiletPaperSlash,\n faAppleWhole: faAppleWhole,\n faAppleAlt: faAppleAlt,\n faKitchenSet: faKitchenSet,\n faR: faR,\n faTemperatureQuarter: faTemperatureQuarter,\n faTemperature1: faTemperature1,\n faThermometer1: faThermometer1,\n faThermometerQuarter: faThermometerQuarter,\n faCube: faCube,\n faBitcoinSign: faBitcoinSign,\n faShieldDog: faShieldDog,\n faSolarPanel: faSolarPanel,\n faLockOpen: faLockOpen,\n faElevator: faElevator,\n faMoneyBillTransfer: faMoneyBillTransfer,\n faMoneyBillTrendUp: faMoneyBillTrendUp,\n faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n faSquarePollHorizontal: faSquarePollHorizontal,\n faPollH: faPollH,\n faCircle: faCircle,\n faBackwardFast: faBackwardFast,\n faFastBackward: faFastBackward,\n faRecycle: faRecycle,\n faUserAstronaut: faUserAstronaut,\n faPlaneSlash: faPlaneSlash,\n faTrademark: faTrademark,\n faBasketball: faBasketball,\n faBasketballBall: faBasketballBall,\n faSatelliteDish: faSatelliteDish,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faMobileScreenButton: faMobileScreenButton,\n faMobileAlt: faMobileAlt,\n faVolumeHigh: faVolumeHigh,\n faVolumeUp: faVolumeUp,\n faUsersRays: faUsersRays,\n faWallet: faWallet,\n faClipboardCheck: faClipboardCheck,\n faFileAudio: faFileAudio,\n faBurger: faBurger,\n faHamburger: faHamburger,\n faWrench: faWrench,\n faBugs: faBugs,\n faRupeeSign: faRupeeSign,\n faRupee: faRupee,\n faFileImage: faFileImage,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faPlaneDeparture: faPlaneDeparture,\n faHandshakeSlash: faHandshakeSlash,\n faBookBookmark: faBookBookmark,\n faCodeBranch: faCodeBranch,\n faHatCowboy: faHatCowboy,\n faBridge: faBridge,\n faPhoneFlip: faPhoneFlip,\n faPhoneAlt: faPhoneAlt,\n faTruckFront: faTruckFront,\n faCat: faCat,\n faAnchorCircleExclamation: faAnchorCircleExclamation,\n faTruckField: faTruckField,\n faRoute: faRoute,\n faClipboardQuestion: faClipboardQuestion,\n faPanorama: faPanorama,\n faCommentMedical: faCommentMedical,\n faTeethOpen: faTeethOpen,\n faFileCircleMinus: faFileCircleMinus,\n faTags: faTags,\n faWineGlass: faWineGlass,\n faForwardFast: faForwardFast,\n faFastForward: faFastForward,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faSquareParking: faSquareParking,\n faParking: faParking,\n faHouseSignal: faHouseSignal,\n faBarsProgress: faBarsProgress,\n faTasksAlt: faTasksAlt,\n faFaucetDrip: faFaucetDrip,\n faCartFlatbed: faCartFlatbed,\n faDollyFlatbed: faDollyFlatbed,\n faBanSmoking: faBanSmoking,\n faSmokingBan: faSmokingBan,\n faTerminal: faTerminal,\n faMobileButton: faMobileButton,\n faHouseMedicalFlag: faHouseMedicalFlag,\n faBasketShopping: faBasketShopping,\n faShoppingBasket: faShoppingBasket,\n faTape: faTape,\n faBusSimple: faBusSimple,\n faBusAlt: faBusAlt,\n faEye: faEye,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faAudioDescription: faAudioDescription,\n faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n faFileShield: faFileShield,\n faUserSlash: faUserSlash,\n faPen: faPen,\n faTowerObservation: faTowerObservation,\n faFileCode: faFileCode,\n faSignal: faSignal,\n faSignal5: faSignal5,\n faSignalPerfect: faSignalPerfect,\n faBus: faBus,\n faHeartCircleXmark: faHeartCircleXmark,\n faHouseChimney: faHouseChimney,\n faHomeLg: faHomeLg,\n faWindowMaximize: faWindowMaximize,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faPrescription: faPrescription,\n faShop: faShop,\n faStoreAlt: faStoreAlt,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faVihara: faVihara,\n faScaleUnbalanced: faScaleUnbalanced,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faSortUp: faSortUp,\n faSortAsc: faSortAsc,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faPlantWilt: faPlantWilt,\n faDiamond: faDiamond,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faHandHoldingDollar: faHandHoldingDollar,\n faHandHoldingUsd: faHandHoldingUsd,\n faBacterium: faBacterium,\n faHandPointer: faHandPointer,\n faDrumSteelpan: faDrumSteelpan,\n faHandScissors: faHandScissors,\n faHandsPraying: faHandsPraying,\n faPrayingHands: faPrayingHands,\n faArrowRotateRight: faArrowRotateRight,\n faArrowRightRotate: faArrowRightRotate,\n faArrowRotateForward: faArrowRotateForward,\n faRedo: faRedo,\n faBiohazard: faBiohazard,\n faLocationCrosshairs: faLocationCrosshairs,\n faLocation: faLocation,\n faMarsDouble: faMarsDouble,\n faChildDress: faChildDress,\n faUsersBetweenLines: faUsersBetweenLines,\n faLungsVirus: faLungsVirus,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPhone: faPhone,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faChildReaching: faChildReaching,\n faHeadSideVirus: faHeadSideVirus,\n faUserGear: faUserGear,\n faUserCog: faUserCog,\n faArrowUp19: faArrowUp19,\n faSortNumericUp: faSortNumericUp,\n faDoorClosed: faDoorClosed,\n faShieldVirus: faShieldVirus,\n faDiceSix: faDiceSix,\n faMosquitoNet: faMosquitoNet,\n faBridgeWater: faBridgeWater,\n faPersonBooth: faPersonBooth,\n faTextWidth: faTextWidth,\n faHatWizard: faHatWizard,\n faPenFancy: faPenFancy,\n faPersonDigging: faPersonDigging,\n faDigging: faDigging,\n faTrash: faTrash,\n faGaugeSimple: faGaugeSimple,\n faGaugeSimpleMed: faGaugeSimpleMed,\n faTachometerAverage: faTachometerAverage,\n faBookMedical: faBookMedical,\n faPoo: faPoo,\n faQuoteRight: faQuoteRight,\n faQuoteRightAlt: faQuoteRightAlt,\n faShirt: faShirt,\n faTShirt: faTShirt,\n faTshirt: faTshirt,\n faCubes: faCubes,\n faDivide: faDivide,\n faTengeSign: faTengeSign,\n faTenge: faTenge,\n faHeadphones: faHeadphones,\n faHandsHolding: faHandsHolding,\n faHandsClapping: faHandsClapping,\n faRepublican: faRepublican,\n faArrowLeft: faArrowLeft,\n faPersonCircleXmark: faPersonCircleXmark,\n faRuler: faRuler,\n faAlignLeft: faAlignLeft,\n faDiceD6: faDiceD6,\n faRestroom: faRestroom,\n faJ: faJ,\n faUsersViewfinder: faUsersViewfinder,\n faFileVideo: faFileVideo,\n faUpRightFromSquare: faUpRightFromSquare,\n faExternalLinkAlt: faExternalLinkAlt,\n faTableCells: faTableCells,\n faTh: faTh,\n faFilePdf: faFilePdf,\n faBookBible: faBookBible,\n faBible: faBible,\n faO: faO,\n faSuitcaseMedical: faSuitcaseMedical,\n faMedkit: faMedkit,\n faUserSecret: faUserSecret,\n faOtter: faOtter,\n faPersonDress: faPersonDress,\n faFemale: faFemale,\n faCommentDollar: faCommentDollar,\n faBusinessTime: faBusinessTime,\n faBriefcaseClock: faBriefcaseClock,\n faTableCellsLarge: faTableCellsLarge,\n faThLarge: faThLarge,\n faBookTanakh: faBookTanakh,\n faTanakh: faTanakh,\n faPhoneVolume: faPhoneVolume,\n faVolumeControlPhone: faVolumeControlPhone,\n faHatCowboySide: faHatCowboySide,\n faClipboardUser: faClipboardUser,\n faChild: faChild,\n faLiraSign: faLiraSign,\n faSatellite: faSatellite,\n faPlaneLock: faPlaneLock,\n faTag: faTag,\n faComment: faComment,\n faCakeCandles: faCakeCandles,\n faBirthdayCake: faBirthdayCake,\n faCake: faCake,\n faEnvelope: faEnvelope,\n faAnglesUp: faAnglesUp,\n faAngleDoubleUp: faAngleDoubleUp,\n faPaperclip: faPaperclip,\n faArrowRightToCity: faArrowRightToCity,\n faRibbon: faRibbon,\n faLungs: faLungs,\n faArrowUp91: faArrowUp91,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faLitecoinSign: faLitecoinSign,\n faBorderNone: faBorderNone,\n faCircleNodes: faCircleNodes,\n faParachuteBox: faParachuteBox,\n faIndent: faIndent,\n faTruckFieldUn: faTruckFieldUn,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faMountain: faMountain,\n faUserDoctor: faUserDoctor,\n faUserMd: faUserMd,\n faCircleInfo: faCircleInfo,\n faInfoCircle: faInfoCircle,\n faCloudMeatball: faCloudMeatball,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faSquareVirus: faSquareVirus,\n faMeteor: faMeteor,\n faCarOn: faCarOn,\n faSleigh: faSleigh,\n faArrowDown19: faArrowDown19,\n faSortNumericAsc: faSortNumericAsc,\n faSortNumericDown: faSortNumericDown,\n faHandHoldingDroplet: faHandHoldingDroplet,\n faHandHoldingWater: faHandHoldingWater,\n faWater: faWater,\n faCalendarCheck: faCalendarCheck,\n faBraille: faBraille,\n faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faLandmark: faLandmark,\n faTruck: faTruck,\n faCrosshairs: faCrosshairs,\n faPersonCane: faPersonCane,\n faTent: faTent,\n faVestPatches: faVestPatches,\n faCheckDouble: faCheckDouble,\n faArrowDownAZ: faArrowDownAZ,\n faSortAlphaAsc: faSortAlphaAsc,\n faSortAlphaDown: faSortAlphaDown,\n faMoneyBillWheat: faMoneyBillWheat,\n faCookie: faCookie,\n faArrowRotateLeft: faArrowRotateLeft,\n faArrowLeftRotate: faArrowLeftRotate,\n faArrowRotateBack: faArrowRotateBack,\n faArrowRotateBackward: faArrowRotateBackward,\n faUndo: faUndo,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faDumbbell: faDumbbell,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faTarpDroplet: faTarpDroplet,\n faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n faPersonSkiingNordic: faPersonSkiingNordic,\n faSkiingNordic: faSkiingNordic,\n faCalendarPlus: faCalendarPlus,\n faPlaneArrival: faPlaneArrival,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faTrainSubway: faTrainSubway,\n faSubway: faSubway,\n faChartGantt: faChartGantt,\n faIndianRupeeSign: faIndianRupeeSign,\n faIndianRupee: faIndianRupee,\n faInr: faInr,\n faCropSimple: faCropSimple,\n faCropAlt: faCropAlt,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faLeftLong: faLeftLong,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faDna: faDna,\n faVirusSlash: faVirusSlash,\n faMinus: faMinus,\n faSubtract: faSubtract,\n faChildRifle: faChildRifle,\n faChess: faChess,\n faArrowLeftLong: faArrowLeftLong,\n faLongArrowLeft: faLongArrowLeft,\n faPlugCircleCheck: faPlugCircleCheck,\n faStreetView: faStreetView,\n faFrancSign: faFrancSign,\n faVolumeOff: faVolumeOff,\n faHandsAslInterpreting: faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAslInterpreting: faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n faGear: faGear,\n faCog: faCog,\n faDropletSlash: faDropletSlash,\n faTintSlash: faTintSlash,\n faMosque: faMosque,\n faMosquito: faMosquito,\n faStarOfDavid: faStarOfDavid,\n faPersonMilitaryRifle: faPersonMilitaryRifle,\n faCartShopping: faCartShopping,\n faShoppingCart: faShoppingCart,\n faVials: faVials,\n faPlugCirclePlus: faPlugCirclePlus,\n faPlaceOfWorship: faPlaceOfWorship,\n faGripVertical: faGripVertical,\n faArrowTurnUp: faArrowTurnUp,\n faLevelUp: faLevelUp,\n faU: faU,\n faSquareRootVariable: faSquareRootVariable,\n faSquareRootAlt: faSquareRootAlt,\n faClock: faClock,\n faClockFour: faClockFour,\n faBackwardStep: faBackwardStep,\n faStepBackward: faStepBackward,\n faPallet: faPallet,\n faFaucet: faFaucet,\n faBaseballBatBall: faBaseballBatBall,\n faS: faS,\n faTimeline: faTimeline,\n faKeyboard: faKeyboard,\n faCaretDown: faCaretDown,\n faHouseChimneyMedical: faHouseChimneyMedical,\n faClinicMedical: faClinicMedical,\n faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n faTemperature3: faTemperature3,\n faThermometer3: faThermometer3,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faMobileScreen: faMobileScreen,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faPlaneUp: faPlaneUp,\n faPiggyBank: faPiggyBank,\n faBatteryHalf: faBatteryHalf,\n faBattery3: faBattery3,\n faMountainCity: faMountainCity,\n faCoins: faCoins,\n faKhanda: faKhanda,\n faSliders: faSliders,\n faSlidersH: faSlidersH,\n faFolderTree: faFolderTree,\n faNetworkWired: faNetworkWired,\n faMapPin: faMapPin,\n faHamsa: faHamsa,\n faCentSign: faCentSign,\n faFlask: faFlask,\n faPersonPregnant: faPersonPregnant,\n faWandSparkles: faWandSparkles,\n faEllipsisVertical: faEllipsisVertical,\n faEllipsisV: faEllipsisV,\n faTicket: faTicket,\n faPowerOff: faPowerOff,\n faRightLong: faRightLong,\n faLongArrowAltRight: faLongArrowAltRight,\n faFlagUsa: faFlagUsa,\n faLaptopFile: faLaptopFile,\n faTty: faTty,\n faTeletype: faTeletype,\n faDiagramNext: faDiagramNext,\n faPersonRifle: faPersonRifle,\n faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n faClosedCaptioning: faClosedCaptioning,\n faPersonHiking: faPersonHiking,\n faHiking: faHiking,\n faVenusDouble: faVenusDouble,\n faImages: faImages,\n faCalculator: faCalculator,\n faPeoplePulling: faPeoplePulling,\n faN: faN,\n faCableCar: faCableCar,\n faTram: faTram,\n faCloudRain: faCloudRain,\n faBuildingCircleXmark: faBuildingCircleXmark,\n faShip: faShip,\n faArrowsDownToLine: faArrowsDownToLine,\n faDownload: faDownload,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faDeleteLeft: faDeleteLeft,\n faBackspace: faBackspace,\n faEyeDropper: faEyeDropper,\n faEyeDropperEmpty: faEyeDropperEmpty,\n faEyedropper: faEyedropper,\n faFileCircleCheck: faFileCircleCheck,\n faForward: faForward,\n faMobile: faMobile,\n faMobileAndroid: faMobileAndroid,\n faMobilePhone: faMobilePhone,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faAlignCenter: faAlignCenter,\n faBookSkull: faBookSkull,\n faBookDead: faBookDead,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faOutdent: faOutdent,\n faDedent: faDedent,\n faHeartCircleExclamation: faHeartCircleExclamation,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faCalendarWeek: faCalendarWeek,\n faLaptopMedical: faLaptopMedical,\n faB: faB,\n faFileMedical: faFileMedical,\n faDiceOne: faDiceOne,\n faKiwiBird: faKiwiBird,\n faArrowRightArrowLeft: faArrowRightArrowLeft,\n faExchange: faExchange,\n faRotateRight: faRotateRight,\n faRedoAlt: faRedoAlt,\n faRotateForward: faRotateForward,\n faUtensils: faUtensils,\n faCutlery: faCutlery,\n faArrowUpWideShort: faArrowUpWideShort,\n faSortAmountUp: faSortAmountUp,\n faMillSign: faMillSign,\n faBowlRice: faBowlRice,\n faSkull: faSkull,\n faTowerBroadcast: faTowerBroadcast,\n faBroadcastTower: faBroadcastTower,\n faTruckPickup: faTruckPickup,\n faUpLong: faUpLong,\n faLongArrowAltUp: faLongArrowAltUp,\n faStop: faStop,\n faCodeMerge: faCodeMerge,\n faUpload: faUpload,\n faHurricane: faHurricane,\n faMound: faMound,\n faToiletPortable: faToiletPortable,\n faCompactDisc: faCompactDisc,\n faFileArrowDown: faFileArrowDown,\n faFileDownload: faFileDownload,\n faCaravan: faCaravan,\n faShieldCat: faShieldCat,\n faBolt: faBolt,\n faZap: faZap,\n faGlassWater: faGlassWater,\n faOilWell: faOilWell,\n faVault: faVault,\n faMars: faMars,\n faToilet: faToilet,\n faPlaneCircleXmark: faPlaneCircleXmark,\n faYenSign: faYenSign,\n faCny: faCny,\n faJpy: faJpy,\n faRmb: faRmb,\n faYen: faYen,\n faRubleSign: faRubleSign,\n faRouble: faRouble,\n faRub: faRub,\n faRuble: faRuble,\n faSun: faSun,\n faGuitar: faGuitar,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faHorseHead: faHorseHead,\n faBoreHole: faBoreHole,\n faIndustry: faIndustry,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowsTurnToDots: faArrowsTurnToDots,\n faFlorinSign: faFlorinSign,\n faArrowDownShortWide: faArrowDownShortWide,\n faSortAmountDesc: faSortAmountDesc,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faLessThan: faLessThan,\n faAngleDown: faAngleDown,\n faCarTunnel: faCarTunnel,\n faHeadSideCough: faHeadSideCough,\n faGripLines: faGripLines,\n faThumbsDown: faThumbsDown,\n faUserLock: faUserLock,\n faArrowRightLong: faArrowRightLong,\n faLongArrowRight: faLongArrowRight,\n faAnchorCircleXmark: faAnchorCircleXmark,\n faEllipsis: faEllipsis,\n faEllipsisH: faEllipsisH,\n faChessPawn: faChessPawn,\n faKitMedical: faKitMedical,\n faFirstAid: faFirstAid,\n faPersonThroughWindow: faPersonThroughWindow,\n faToolbox: faToolbox,\n faHandsHoldingCircle: faHandsHoldingCircle,\n faBug: faBug,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faCar: faCar,\n faAutomobile: faAutomobile,\n faHandHoldingHand: faHandHoldingHand,\n faBookOpenReader: faBookOpenReader,\n faBookReader: faBookReader,\n faMountainSun: faMountainSun,\n faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n faDiceD20: faDiceD20,\n faTruckDroplet: faTruckDroplet,\n faFileCircleXmark: faFileCircleXmark,\n faTemperatureArrowUp: faTemperatureArrowUp,\n faTemperatureUp: faTemperatureUp,\n faMedal: faMedal,\n faBed: faBed,\n faSquareH: faSquareH,\n faHSquare: faHSquare,\n faPodcast: faPodcast,\n faTemperatureFull: faTemperatureFull,\n faTemperature4: faTemperature4,\n faThermometer4: faThermometer4,\n faThermometerFull: faThermometerFull,\n faBell: faBell,\n faSuperscript: faSuperscript,\n faPlugCircleXmark: faPlugCircleXmark,\n faStarOfLife: faStarOfLife,\n faPhoneSlash: faPhoneSlash,\n faPaintRoller: faPaintRoller,\n faHandshakeAngle: faHandshakeAngle,\n faHandsHelping: faHandsHelping,\n faLocationDot: faLocationDot,\n faMapMarkerAlt: faMapMarkerAlt,\n faFile: faFile,\n faGreaterThan: faGreaterThan,\n faPersonSwimming: faPersonSwimming,\n faSwimmer: faSwimmer,\n faArrowDown: faArrowDown,\n faDroplet: faDroplet,\n faTint: faTint,\n faEraser: faEraser,\n faEarthAmericas: faEarthAmericas,\n faEarth: faEarth,\n faEarthAmerica: faEarthAmerica,\n faGlobeAmericas: faGlobeAmericas,\n faPersonBurst: faPersonBurst,\n faDove: faDove,\n faBatteryEmpty: faBatteryEmpty,\n faBattery0: faBattery0,\n faSocks: faSocks,\n faInbox: faInbox,\n faSection: faSection,\n faGaugeHigh: faGaugeHigh,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltFast: faTachometerAltFast,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faWineBottle: faWineBottle,\n faChessRook: faChessRook,\n faBarsStaggered: faBarsStaggered,\n faReorder: faReorder,\n faStream: faStream,\n faDharmachakra: faDharmachakra,\n faHotdog: faHotdog,\n faPersonWalkingWithCane: faPersonWalkingWithCane,\n faBlind: faBlind,\n faDrum: faDrum,\n faIceCream: faIceCream,\n faHeartCircleBolt: faHeartCircleBolt,\n faFax: faFax,\n faParagraph: faParagraph,\n faCheckToSlot: faCheckToSlot,\n faVoteYea: faVoteYea,\n faStarHalf: faStarHalf,\n faBoxesStacked: faBoxesStacked,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faLink: faLink,\n faChain: faChain,\n faEarListen: faEarListen,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faTreeCity: faTreeCity,\n faPlay: faPlay,\n faFont: faFont,\n faRupiahSign: faRupiahSign,\n faMagnifyingGlass: faMagnifyingGlass,\n faSearch: faSearch,\n faTableTennisPaddleBall: faTableTennisPaddleBall,\n faPingPongPaddleBall: faPingPongPaddleBall,\n faTableTennis: faTableTennis,\n faPersonDotsFromLine: faPersonDotsFromLine,\n faDiagnoses: faDiagnoses,\n faTrashCanArrowUp: faTrashCanArrowUp,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faNairaSign: faNairaSign,\n faCartArrowDown: faCartArrowDown,\n faWalkieTalkie: faWalkieTalkie,\n faFilePen: faFilePen,\n faFileEdit: faFileEdit,\n faReceipt: faReceipt,\n faSquarePen: faSquarePen,\n faPenSquare: faPenSquare,\n faPencilSquare: faPencilSquare,\n faSuitcaseRolling: faSuitcaseRolling,\n faPersonCircleExclamation: faPersonCircleExclamation,\n faChevronDown: faChevronDown,\n faBatteryFull: faBatteryFull,\n faBattery: faBattery,\n faBattery5: faBattery5,\n faSkullCrossbones: faSkullCrossbones,\n faCodeCompare: faCodeCompare,\n faListUl: faListUl,\n faListDots: faListDots,\n faSchoolLock: faSchoolLock,\n faTowerCell: faTowerCell,\n faDownLong: faDownLong,\n faLongArrowAltDown: faLongArrowAltDown,\n faRankingStar: faRankingStar,\n faChessKing: faChessKing,\n faPersonHarassing: faPersonHarassing,\n faBrazilianRealSign: faBrazilianRealSign,\n faLandmarkDome: faLandmarkDome,\n faLandmarkAlt: faLandmarkAlt,\n faArrowUp: faArrowUp,\n faTv: faTv,\n faTelevision: faTelevision,\n faTvAlt: faTvAlt,\n faShrimp: faShrimp,\n faListCheck: faListCheck,\n faTasks: faTasks,\n faJugDetergent: faJugDetergent,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faUserShield: faUserShield,\n faWind: faWind,\n faCarBurst: faCarBurst,\n faCarCrash: faCarCrash,\n faY: faY,\n faPersonSnowboarding: faPersonSnowboarding,\n faSnowboarding: faSnowboarding,\n faTruckFast: faTruckFast,\n faShippingFast: faShippingFast,\n faFish: faFish,\n faUserGraduate: faUserGraduate,\n faCircleHalfStroke: faCircleHalfStroke,\n faAdjust: faAdjust,\n faClapperboard: faClapperboard,\n faCircleRadiation: faCircleRadiation,\n faRadiationAlt: faRadiationAlt,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faJetFighterUp: faJetFighterUp,\n faDiagramProject: faDiagramProject,\n faProjectDiagram: faProjectDiagram,\n faCopy: faCopy,\n faVolumeXmark: faVolumeXmark,\n faVolumeMute: faVolumeMute,\n faVolumeTimes: faVolumeTimes,\n faHandSparkles: faHandSparkles,\n faGrip: faGrip,\n faGripHorizontal: faGripHorizontal,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faGun: faGun,\n faSquarePhone: faSquarePhone,\n faPhoneSquare: faPhoneSquare,\n faPlus: faPlus,\n faAdd: faAdd,\n faExpand: faExpand,\n faComputer: faComputer,\n faXmark: faXmark,\n faClose: faClose,\n faMultiply: faMultiply,\n faRemove: faRemove,\n faTimes: faTimes,\n faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n faArrows: faArrows,\n faChalkboardUser: faChalkboardUser,\n faChalkboardTeacher: faChalkboardTeacher,\n faPesoSign: faPesoSign,\n faBuildingShield: faBuildingShield,\n faBaby: faBaby,\n faUsersLine: faUsersLine,\n faQuoteLeft: faQuoteLeft,\n faQuoteLeftAlt: faQuoteLeftAlt,\n faTractor: faTractor,\n faTrashArrowUp: faTrashArrowUp,\n faTrashRestore: faTrashRestore,\n faArrowDownUpLock: faArrowDownUpLock,\n faLinesLeaning: faLinesLeaning,\n faRulerCombined: faRulerCombined,\n faCopyright: faCopyright,\n faEquals: faEquals,\n faBlender: faBlender,\n faTeeth: faTeeth,\n faShekelSign: faShekelSign,\n faIls: faIls,\n faShekel: faShekel,\n faSheqel: faSheqel,\n faSheqelSign: faSheqelSign,\n faMap: faMap,\n faRocket: faRocket,\n faPhotoFilm: faPhotoFilm,\n faPhotoVideo: faPhotoVideo,\n faFolderMinus: faFolderMinus,\n faStore: faStore,\n faArrowTrendUp: faArrowTrendUp,\n faPlugCircleMinus: faPlugCircleMinus,\n faSignHanging: faSignHanging,\n faSign: faSign,\n faBezierCurve: faBezierCurve,\n faBellSlash: faBellSlash,\n faTablet: faTablet,\n faTabletAndroid: faTabletAndroid,\n faSchoolFlag: faSchoolFlag,\n faFill: faFill,\n faAngleUp: faAngleUp,\n faDrumstickBite: faDrumstickBite,\n faHollyBerry: faHollyBerry,\n faChevronLeft: faChevronLeft,\n faBacteria: faBacteria,\n faHandLizard: faHandLizard,\n faDisease: faDisease,\n faBriefcaseMedical: faBriefcaseMedical,\n faGenderless: faGenderless,\n faChevronRight: faChevronRight,\n faRetweet: faRetweet,\n faCarRear: faCarRear,\n faCarAlt: faCarAlt,\n faPumpSoap: faPumpSoap,\n faVideoSlash: faVideoSlash,\n faBatteryQuarter: faBatteryQuarter,\n faBattery2: faBattery2,\n faRadio: faRadio,\n faBabyCarriage: faBabyCarriage,\n faCarriageBaby: faCarriageBaby,\n faTrafficLight: faTrafficLight,\n faThermometer: faThermometer,\n faVrCardboard: faVrCardboard,\n faHandMiddleFinger: faHandMiddleFinger,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faTruckMoving: faTruckMoving,\n faGlassWaterDroplet: faGlassWaterDroplet,\n faDisplay: faDisplay,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faThumbtack: faThumbtack,\n faThumbTack: faThumbTack,\n faTrophy: faTrophy,\n faPersonPraying: faPersonPraying,\n faPray: faPray,\n faHammer: faHammer,\n faHandPeace: faHandPeace,\n faRotate: faRotate,\n faSyncAlt: faSyncAlt,\n faSpinner: faSpinner,\n faRobot: faRobot,\n faPeace: faPeace,\n faGears: faGears,\n faCogs: faCogs,\n faWarehouse: faWarehouse,\n faArrowUpRightDots: faArrowUpRightDots,\n faSplotch: faSplotch,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faDiceFour: faDiceFour,\n faSimCard: faSimCard,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faMercury: faMercury,\n faArrowTurnDown: faArrowTurnDown,\n faLevelDown: faLevelDown,\n faPersonFallingBurst: faPersonFallingBurst,\n faAward: faAward,\n faTicketSimple: faTicketSimple,\n faTicketAlt: faTicketAlt,\n faBuilding: faBuilding,\n faAnglesLeft: faAnglesLeft,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faQrcode: faQrcode,\n faClockRotateLeft: faClockRotateLeft,\n faHistory: faHistory,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faFileExport: faFileExport,\n faArrowRightFromFile: faArrowRightFromFile,\n faShield: faShield,\n faShieldBlank: faShieldBlank,\n faArrowUpShortWide: faArrowUpShortWide,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faHouseMedical: faHouseMedical,\n faGolfBallTee: faGolfBallTee,\n faGolfBall: faGolfBall,\n faCircleChevronLeft: faCircleChevronLeft,\n faChevronCircleLeft: faChevronCircleLeft,\n faHouseChimneyWindow: faHouseChimneyWindow,\n faPenNib: faPenNib,\n faTentArrowTurnLeft: faTentArrowTurnLeft,\n faTents: faTents,\n faWandMagic: faWandMagic,\n faMagic: faMagic,\n faDog: faDog,\n faCarrot: faCarrot,\n faMoon: faMoon,\n faWineGlassEmpty: faWineGlassEmpty,\n faWineGlassAlt: faWineGlassAlt,\n faCheese: faCheese,\n faYinYang: faYinYang,\n faMusic: faMusic,\n faCodeCommit: faCodeCommit,\n faTemperatureLow: faTemperatureLow,\n faPersonBiking: faPersonBiking,\n faBiking: faBiking,\n faBroom: faBroom,\n faShieldHeart: faShieldHeart,\n faGopuram: faGopuram,\n faEarthOceania: faEarthOceania,\n faGlobeOceania: faGlobeOceania,\n faSquareXmark: faSquareXmark,\n faTimesSquare: faTimesSquare,\n faXmarkSquare: faXmarkSquare,\n faHashtag: faHashtag,\n faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n faExpandAlt: faExpandAlt,\n faOilCan: faOilCan,\n faT: faT,\n faHippo: faHippo,\n faChartColumn: faChartColumn,\n faInfinity: faInfinity,\n faVialCircleCheck: faVialCircleCheck,\n faPersonArrowDownToLine: faPersonArrowDownToLine,\n faVoicemail: faVoicemail,\n faFan: faFan,\n faPersonWalkingLuggage: faPersonWalkingLuggage,\n faUpDown: faUpDown,\n faArrowsAltV: faArrowsAltV,\n faCloudMoonRain: faCloudMoonRain,\n faCalendar: faCalendar,\n faTrailer: faTrailer,\n faBahai: faBahai,\n faHaykal: faHaykal,\n faSdCard: faSdCard,\n faDragon: faDragon,\n faShoePrints: faShoePrints,\n faCirclePlus: faCirclePlus,\n faPlusCircle: faPlusCircle,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faHandHolding: faHandHolding,\n faPlugCircleExclamation: faPlugCircleExclamation,\n faLinkSlash: faLinkSlash,\n faChainBroken: faChainBroken,\n faChainSlash: faChainSlash,\n faUnlink: faUnlink,\n faClone: faClone,\n faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n faArrowUpZA: faArrowUpZA,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faFireFlameCurved: faFireFlameCurved,\n faFireAlt: faFireAlt,\n faTornado: faTornado,\n faFileCirclePlus: faFileCirclePlus,\n faBookQuran: faBookQuran,\n faQuran: faQuran,\n faAnchor: faAnchor,\n faBorderAll: faBorderAll,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faCookieBite: faCookieBite,\n faArrowTrendDown: faArrowTrendDown,\n faRss: faRss,\n faFeed: faFeed,\n faDrawPolygon: faDrawPolygon,\n faScaleBalanced: faScaleBalanced,\n faBalanceScale: faBalanceScale,\n faGaugeSimpleHigh: faGaugeSimpleHigh,\n faTachometer: faTachometer,\n faTachometerFast: faTachometerFast,\n faShower: faShower,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faM: faM,\n faTableList: faTableList,\n faThList: faThList,\n faCommentSms: faCommentSms,\n faSms: faSms,\n faBook: faBook,\n faUserPlus: faUserPlus,\n faCheck: faCheck,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBattery4: faBattery4,\n faHouseCircleCheck: faHouseCircleCheck,\n faAngleLeft: faAngleLeft,\n faDiagramSuccessor: faDiagramSuccessor,\n faTruckArrowRight: faTruckArrowRight,\n faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n faHandFist: faHandFist,\n faFistRaised: faFistRaised,\n faCloudMoon: faCloudMoon,\n faBriefcase: faBriefcase,\n faPersonFalling: faPersonFalling,\n faImagePortrait: faImagePortrait,\n faPortrait: faPortrait,\n faUserTag: faUserTag,\n faRug: faRug,\n faEarthEurope: faEarthEurope,\n faGlobeEurope: faGlobeEurope,\n faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n faLuggageCart: faLuggageCart,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faBahtSign: faBahtSign,\n faBookOpen: faBookOpen,\n faBookJournalWhills: faBookJournalWhills,\n faJournalWhills: faJournalWhills,\n faHandcuffs: faHandcuffs,\n faTriangleExclamation: faTriangleExclamation,\n faExclamationTriangle: faExclamationTriangle,\n faWarning: faWarning,\n faDatabase: faDatabase,\n faShare: faShare,\n faArrowTurnRight: faArrowTurnRight,\n faMailForward: faMailForward,\n faBottleDroplet: faBottleDroplet,\n faMaskFace: faMaskFace,\n faHillRockslide: faHillRockslide,\n faRightLeft: faRightLeft,\n faExchangeAlt: faExchangeAlt,\n faPaperPlane: faPaperPlane,\n faRoadCircleExclamation: faRoadCircleExclamation,\n faDungeon: faDungeon,\n faAlignRight: faAlignRight,\n faMoneyBill1Wave: faMoneyBill1Wave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faLifeRing: faLifeRing,\n faHands: faHands,\n faSignLanguage: faSignLanguage,\n faSigning: faSigning,\n faCalendarDay: faCalendarDay,\n faWaterLadder: faWaterLadder,\n faLadderWater: faLadderWater,\n faSwimmingPool: faSwimmingPool,\n faArrowsUpDown: faArrowsUpDown,\n faArrowsV: faArrowsV,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faWheelchairMove: faWheelchairMove,\n faWheelchairAlt: faWheelchairAlt,\n faTurnDown: faTurnDown,\n faLevelDownAlt: faLevelDownAlt,\n faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n faSquareEnvelope: faSquareEnvelope,\n faEnvelopeSquare: faEnvelopeSquare,\n faDice: faDice,\n faBowlingBall: faBowlingBall,\n faBrain: faBrain,\n faBandage: faBandage,\n faBandAid: faBandAid,\n faCalendarMinus: faCalendarMinus,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faGifts: faGifts,\n faHotel: faHotel,\n faEarthAsia: faEarthAsia,\n faGlobeAsia: faGlobeAsia,\n faIdCardClip: faIdCardClip,\n faIdCardAlt: faIdCardAlt,\n faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n faSearchPlus: faSearchPlus,\n faThumbsUp: faThumbsUp,\n faUserClock: faUserClock,\n faHandDots: faHandDots,\n faAllergies: faAllergies,\n faFileInvoice: faFileInvoice,\n faWindowMinimize: faWindowMinimize,\n faMugSaucer: faMugSaucer,\n faCoffee: faCoffee,\n faBrush: faBrush,\n faMask: faMask,\n faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n faSearchMinus: faSearchMinus,\n faRulerVertical: faRulerVertical,\n faUserLarge: faUserLarge,\n faUserAlt: faUserAlt,\n faTrainTram: faTrainTram,\n faUserNurse: faUserNurse,\n faSyringe: faSyringe,\n faCloudSun: faCloudSun,\n faStopwatch20: faStopwatch20,\n faSquareFull: faSquareFull,\n faMagnet: faMagnet,\n faJar: faJar,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faBugSlash: faBugSlash,\n faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n faBone: faBone,\n faUserInjured: faUserInjured,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faPlane: faPlane,\n faTentArrowsDown: faTentArrowsDown,\n faExclamation: faExclamation,\n faArrowsSpin: faArrowsSpin,\n faPrint: faPrint,\n faTurkishLiraSign: faTurkishLiraSign,\n faTry: faTry,\n faTurkishLira: faTurkishLira,\n faDollarSign: faDollarSign,\n faDollar: faDollar,\n faUsd: faUsd,\n faX: faX,\n faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n faSearchDollar: faSearchDollar,\n faUsersGear: faUsersGear,\n faUsersCog: faUsersCog,\n faPersonMilitaryPointing: faPersonMilitaryPointing,\n faBuildingColumns: faBuildingColumns,\n faBank: faBank,\n faInstitution: faInstitution,\n faMuseum: faMuseum,\n faUniversity: faUniversity,\n faUmbrella: faUmbrella,\n faTrowel: faTrowel,\n faD: faD,\n faStapler: faStapler,\n faMasksTheater: faMasksTheater,\n faTheaterMasks: faTheaterMasks,\n faKipSign: faKipSign,\n faHandPointLeft: faHandPointLeft,\n faHandshakeSimple: faHandshakeSimple,\n faHandshakeAlt: faHandshakeAlt,\n faJetFighter: faJetFighter,\n faFighterJet: faFighterJet,\n faSquareShareNodes: faSquareShareNodes,\n faShareAltSquare: faShareAltSquare,\n faBarcode: faBarcode,\n faPlusMinus: faPlusMinus,\n faVideo: faVideo,\n faVideoCamera: faVideoCamera,\n faGraduationCap: faGraduationCap,\n faMortarBoard: faMortarBoard,\n faHandHoldingMedical: faHandHoldingMedical,\n faPersonCircleCheck: faPersonCircleCheck,\n faTurnUp: faTurnUp,\n faLevelUpAlt: faLevelUpAlt\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faFillDrip, faArrowsToCircle, faCircleChevronRight, faChevronCircleRight, faAt, faTrashCan, faTrashAlt, faTextHeight, faUserXmark, faUserTimes, faStethoscope, faMessage, faCommentAlt, faInfo, faDownLeftAndUpRightToCenter, faCompressAlt, faExplosion, faFileLines, faFileAlt, faFileText, faWaveSquare, faRing, faBuildingUn, faDiceThree, faCalendarDays, faCalendarAlt, faAnchorCircleCheck, faBuildingCircleArrowRight, faVolleyball, faVolleyballBall, faArrowsUpToLine, faSortDown, faSortDesc, faCircleMinus, faMinusCircle, faDoorOpen, faRightFromBracket, faSignOutAlt, faAtom, faSoap, faIcons, faHeartMusicCameraBolt, faMicrophoneLinesSlash, faMicrophoneAltSlash, faBridgeCircleCheck, faPumpMedical, faFingerprint, faHandPointRight, faMagnifyingGlassLocation, faSearchLocation, faForwardStep, faStepForward, faFaceSmileBeam, faSmileBeam, faFlagCheckered, faFootball, faFootballBall, faSchoolCircleExclamation, faCrop, faAnglesDown, faAngleDoubleDown, faUsersRectangle, faPeopleRoof, faPeopleLine, faBeerMugEmpty, faBeer, faDiagramPredecessor, faArrowUpLong, faLongArrowUp, faFireFlameSimple, faBurn, faPerson, faMale, faLaptop, faFileCsv, faMenorah, faTruckPlane, faRecordVinyl, faFaceGrinStars, faGrinStars, faBong, faSpaghettiMonsterFlying, faPastafarianism, faArrowDownUpAcrossLine, faSpoon, faUtensilSpoon, faJarWheat, faEnvelopesBulk, faMailBulk, faFileCircleExclamation, faCircleH, faHospitalSymbol, faPager, faAddressBook, faContactBook, faStrikethrough, faK, faLandmarkFlag, faPencil, faPencilAlt, faBackward, faCaretRight, faComments, faPaste, faFileClipboard, faCodePullRequest, faClipboardList, faTruckRampBox, faTruckLoading, faUserCheck, faVialVirus, faSheetPlastic, faBlog, faUserNinja, faPersonArrowUpFromLine, faScrollTorah, faTorah, faBroomBall, faQuidditch, faQuidditchBroomBall, faToggleOff, faBoxArchive, faArchive, faPersonDrowning, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faSprayCan, faTruckMonster, faW, faEarthAfrica, faGlobeAfrica, faRainbow, faCircleNotch, faTabletScreenButton, faTabletAlt, faPaw, faCloud, faTrowelBricks, faFaceFlushed, faFlushed, faHospitalUser, faTentArrowLeftRight, faGavel, faLegal, faBinoculars, faMicrophoneSlash, faBoxTissue, faMotorcycle, faBellConcierge, faConciergeBell, faPenRuler, faPencilRuler, faPeopleArrows, faPeopleArrowsLeftRight, faMarsAndVenusBurst, faSquareCaretRight, faCaretSquareRight, faScissors, faCut, faSunPlantWilt, faToiletsPortable, faHockeyPuck, faTable, faMagnifyingGlassArrowRight, faTachographDigital, faDigitalTachograph, faUsersSlash, faClover, faReply, faMailReply, faStarAndCrescent, faHouseFire, faSquareMinus, faMinusSquare, faHelicopter, faCompass, faSquareCaretDown, faCaretSquareDown, faFileCircleQuestion, faLaptopCode, faSwatchbook, faPrescriptionBottle, faBars, faNavicon, faPeopleGroup, faHourglassEnd, faHourglass3, faHeartCrack, faHeartBroken, faSquareUpRight, faExternalLinkSquareAlt, faFaceKissBeam, faKissBeam, faFilm, faRulerHorizontal, faPeopleRobbery, faLightbulb, faCaretLeft, faCircleExclamation, faExclamationCircle, faSchoolCircleXmark, faArrowRightFromBracket, faSignOut, faCircleChevronDown, faChevronCircleDown, faUnlockKeyhole, faUnlockAlt, faCloudShowersHeavy, faHeadphonesSimple, faHeadphonesAlt, faSitemap, faCircleDollarToSlot, faDonate, faMemory, faRoadSpikes, faFireBurner, faFlag, faHanukiah, faFeather, faVolumeLow, faVolumeDown, faCommentSlash, faCloudSunRain, faCompress, faWheatAwn, faWheatAlt, faAnkh, faHandsHoldingChild, faAsterisk, faSquareCheck, faCheckSquare, faPesetaSign, faHeading, faHeader, faGhost, faList, faListSquares, faSquarePhoneFlip, faPhoneSquareAlt, faCartPlus, faGamepad, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faEgg, faHouseMedicalCircleXmark, faCampground, faFolderPlus, faFutbol, faFutbolBall, faSoccerBall, faPaintbrush, faPaintBrush, faLock, faGasPump, faHotTubPerson, faHotTub, faMapLocation, faMapMarked, faHouseFloodWater, faTree, faBridgeLock, faSackDollar, faPenToSquare, faEdit, faCarSide, faShareNodes, faShareAlt, faHeartCircleMinus, faHourglassHalf, faHourglass2, faMicroscope, faSink, faBagShopping, faShoppingBag, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faMitten, faPersonRays, faUsers, faEyeSlash, faFlaskVial, faHand, faHandPaper, faOm, faWorm, faHouseCircleXmark, faPlug, faChevronUp, faHandSpock, faStopwatch, faFaceKiss, faKiss, faBridgeCircleXmark, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faRoadCircleCheck, faDiceFive, faSquareRss, faRssSquare, faLandMineOn, faICursor, faStamp, faStairs, faI, faHryvniaSign, faHryvnia, faPills, faFaceGrinWide, faGrinAlt, faTooth, faV, faBicycle, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faHeadSideCoughSlash, faTruckMedical, faAmbulance, faWheatAwnCircleExclamation, faSnowman, faMortarPestle, faRoadBarrier, faSchool, faIgloo, faJoint, faAngleRight, faHorse, faQ, faG, faNotesMedical, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faDongSign, faCapsules, faPooStorm, faPooBolt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faMoneyBill, faBookmark, faAlignJustify, faUmbrellaBeach, faHelmetUn, faBullseye, faBacon, faHandPointDown, faArrowUpFromBracket, faFolder, faFolderBlank, faFileWaveform, faFileMedicalAlt, faRadiation, faChartSimple, faMarsStroke, faVial, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faWandMagicSparkles, faMagicWandSparkles, faE, faPenClip, faPenAlt, faBridgeCircleExclamation, faUser, faSchoolCircleCheck, faDumpster, faVanShuttle, faShuttleVan, faBuildingUser, faSquareCaretLeft, faCaretSquareLeft, faHighlighter, faKey, faBullhorn, faGlobe, faSynagogue, faPersonHalfDress, faRoadBridge, faLocationArrow, faC, faTabletButton, faBuildingLock, faPizzaSlice, faMoneyBillWave, faChartArea, faAreaChart, faHouseFlag, faPersonCircleMinus, faBan, faCancel, faCameraRotate, faSprayCanSparkles, faAirFreshener, faStar, faRepeat, faCross, faBox, faVenusMars, faArrowPointer, faMousePointer, faMaximize, faExpandArrowsAlt, faChargingStation, faShapes, faTriangleCircleSquare, faShuffle, faRandom, faPersonRunning, faRunning, faMobileRetro, faGripLinesVertical, faSpider, faHandsBound, faFileInvoiceDollar, faPlaneCircleExclamation, faXRay, faSpellCheck, faSlash, faComputerMouse, faMouse, faArrowRightToBracket, faSignIn, faShopSlash, faStoreAltSlash, faServer, faVirusCovidSlash, faShopLock, faHourglassStart, faHourglass1, faBlenderPhone, faBuildingWheat, faPersonBreastfeeding, faRightToBracket, faSignInAlt, faVenus, faPassport, faHeartPulse, faHeartbeat, faPeopleCarryBox, faPeopleCarry, faTemperatureHigh, faMicrochip, faCrown, faWeightHanging, faXmarksLines, faFilePrescription, faWeightScale, faWeight, faUserGroup, faUserFriends, faArrowUpAZ, faSortAlphaUp, faChessKnight, faFaceLaughSquint, faLaughSquint, faWheelchair, faCircleArrowUp, faArrowCircleUp, faToggleOn, faPersonWalking, faWalking, faL, faFire, faBedPulse, faProcedures, faShuttleSpace, faSpaceShuttle, faFaceLaugh, faLaugh, faFolderOpen, faHeartCirclePlus, faCodeFork, faCity, faMicrophoneLines, faMicrophoneAlt, faPepperHot, faUnlock, faColonSign, faHeadset, faStoreSlash, faRoadCircleXmark, faUserMinus, faMarsStrokeUp, faMarsStrokeV, faChampagneGlasses, faGlassCheers, faClipboard, faHouseCircleExclamation, faFileArrowUp, faFileUpload, faWifi, faWifi3, faWifiStrong, faBath, faBathtub, faUnderline, faUserPen, faUserEdit, faSignature, faStroopwafel, faBold, faAnchorLock, faBuildingNgo, faManatSign, faNotEqual, faBorderTopLeft, faBorderStyle, faMapLocationDot, faMapMarkedAlt, faJedi, faSquarePollVertical, faPoll, faMugHot, faCarBattery, faBatteryCar, faGift, faDiceTwo, faChessQueen, faGlasses, faChessBoard, faBuildingCircleCheck, faPersonChalkboard, faMarsStrokeRight, faMarsStrokeH, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faCloudShowersWater, faChartBar, faBarChart, faHandsBubbles, faHandsWash, faLessThanEqual, faTrain, faEyeLowVision, faLowVision, faCrow, faSailboat, faWindowRestore, faSquarePlus, faPlusSquare, faToriiGate, faFrog, faBucket, faImage, faMicrophone, faCow, faCaretUp, faScrewdriver, faFolderClosed, faHouseTsunami, faSquareNfi, faArrowUpFromGroundWater, faMartiniGlass, faGlassMartiniAlt, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faTableColumns, faColumns, faLemon, faHeadSideMask, faHandshake, faGem, faDolly, faDollyBox, faSmoking, faMinimize, faCompressArrowsAlt, faMonument, faSnowplow, faAnglesRight, faAngleDoubleRight, faCannabis, faCirclePlay, faPlayCircle, faTablets, faEthernet, faEuroSign, faEur, faEuro, faChair, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faCompassDrafting, faDraftingCompass, faPlateWheat, faIcicles, faPersonShelter, faNeuter, faIdBadge, faMarker, faFaceLaughBeam, faLaughBeam, faHelicopterSymbol, faUniversalAccess, faCircleChevronUp, faChevronCircleUp, faLariSign, faVolcano, faPersonWalkingDashedLineArrowRight, faSterlingSign, faGbp, faPoundSign, faViruses, faSquarePersonConfined, faUserTie, faArrowDownLong, faLongArrowDown, faTentArrowDownToLine, faCertificate, faReplyAll, faMailReplyAll, faSuitcase, faPersonSkating, faSkating, faFilterCircleDollar, faFunnelDollar, faCameraRetro, faCircleArrowDown, faArrowCircleDown, faFileImport, faArrowRightToFile, faSquareArrowUpRight, faExternalLinkSquare, faBoxOpen, faScroll, faSpa, faLocationPinLock, faPause, faHillAvalanche, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBomb, faRegistered, faAddressCard, faContactCard, faVcard, faScaleUnbalancedFlip, faBalanceScaleRight, faSubscript, faDiamondTurnRight, faDirections, faBurst, faHouseLaptop, faLaptopHouse, faFaceTired, faTired, faMoneyBills, faSmog, faCrutch, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faPalette, faArrowsTurnRight, faVest, faFerry, faArrowsDownToPeople, faSeedling, faSprout, faLeftRight, faArrowsAltH, faBoxesPacking, faCircleArrowLeft, faArrowCircleLeft, faGroupArrowsRotate, faBowlFood, faCandyCane, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCloudBolt, faThunderstorm, faTextSlash, faRemoveFormat, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faArrowsLeftRight, faArrowsH, faHouseLock, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faChildren, faChalkboard, faBlackboard, faUserLargeSlash, faUserAltSlash, faEnvelopeOpen, faHandshakeSimpleSlash, faHandshakeAltSlash, faMattressPillow, faGuaraniSign, faArrowsRotate, faRefresh, faSync, faFireExtinguisher, faCruzeiroSign, faGreaterThanEqual, faShieldHalved, faShieldAlt, faBookAtlas, faAtlas, faVirus, faEnvelopeCircleCheck, faLayerGroup, faArrowsToDot, faArchway, faHeartCircleCheck, faHouseChimneyCrack, faHouseDamage, faFileZipper, faFileArchive, faSquare, faMartiniGlassEmpty, faGlassMartini, faCouch, faCediSign, faItalic, faChurch, faCommentsDollar, faDemocrat, faZ, faPersonSkiing, faSkiing, faRoadLock, faA, faTemperatureArrowDown, faTemperatureDown, faFeatherPointed, faFeatherAlt, faP, faSnowflake, faNewspaper, faRectangleAd, faAd, faCircleArrowRight, faArrowCircleRight, faFilterCircleXmark, faLocust, faSort, faUnsorted, faListOl, faList12, faListNumeric, faPersonDressBurst, faMoneyCheckDollar, faMoneyCheckAlt, faVectorSquare, faBreadSlice, faLanguage, faFaceKissWinkHeart, faKissWinkHeart, faFilter, faQuestion, faFileSignature, faUpDownLeftRight, faArrowsAlt, faHouseChimneyUser, faHandHoldingHeart, faPuzzlePiece, faMoneyCheck, faStarHalfStroke, faStarHalfAlt, faCode, faWhiskeyGlass, faGlassWhiskey, faBuildingCircleExclamation, faMagnifyingGlassChart, faArrowUpRightFromSquare, faExternalLink, faCubesStacked, faWonSign, faKrw, faWon, faVirusCovid, faAustralSign, faF, faLeaf, faRoad, faTaxi, faCab, faPersonCirclePlus, faChartPie, faPieChart, faBoltLightning, faSackXmark, faFileExcel, faFileContract, faFishFins, faBuildingFlag, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faPoop, faLocationPin, faMapMarker, faKaaba, faToiletPaper, faHelmetSafety, faHardHat, faHatHard, faEject, faCircleRight, faArrowAltCircleRight, faPlaneCircleCheck, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faChartLine, faLineChart, faMaskVentilator, faArrowRight, faSignsPost, faMapSigns, faCashRegister, faPersonCircleQuestion, faH, faTarp, faScrewdriverWrench, faTools, faArrowsToEye, faPlugCircleBolt, faHeart, faMarsAndVenus, faHouseUser, faHomeUser, faDumpsterFire, faHouseCrack, faMartiniGlassCitrus, faCocktail, faFaceSurprise, faSurprise, faBottleWater, faCirclePause, faPauseCircle, faToiletPaperSlash, faAppleWhole, faAppleAlt, faKitchenSet, faR, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faCube, faBitcoinSign, faShieldDog, faSolarPanel, faLockOpen, faElevator, faMoneyBillTransfer, faMoneyBillTrendUp, faHouseFloodWaterCircleArrowRight, faSquarePollHorizontal, faPollH, faCircle, faBackwardFast, faFastBackward, faRecycle, faUserAstronaut, faPlaneSlash, faTrademark, faBasketball, faBasketballBall, faSatelliteDish, faCircleUp, faArrowAltCircleUp, faMobileScreenButton, faMobileAlt, faVolumeHigh, faVolumeUp, faUsersRays, faWallet, faClipboardCheck, faFileAudio, faBurger, faHamburger, faWrench, faBugs, faRupeeSign, faRupee, faFileImage, faCircleQuestion, faQuestionCircle, faPlaneDeparture, faHandshakeSlash, faBookBookmark, faCodeBranch, faHatCowboy, faBridge, faPhoneFlip, faPhoneAlt, faTruckFront, faCat, faAnchorCircleExclamation, faTruckField, faRoute, faClipboardQuestion, faPanorama, faCommentMedical, faTeethOpen, faFileCircleMinus, faTags, faWineGlass, faForwardFast, faFastForward, faFaceMehBlank, faMehBlank, faSquareParking, faParking, faHouseSignal, faBarsProgress, faTasksAlt, faFaucetDrip, faCartFlatbed, faDollyFlatbed, faBanSmoking, faSmokingBan, faTerminal, faMobileButton, faHouseMedicalFlag, faBasketShopping, faShoppingBasket, faTape, faBusSimple, faBusAlt, faEye, faFaceSadCry, faSadCry, faAudioDescription, faPersonMilitaryToPerson, faFileShield, faUserSlash, faPen, faTowerObservation, faFileCode, faSignal, faSignal5, faSignalPerfect, faBus, faHeartCircleXmark, faHouseChimney, faHomeLg, faWindowMaximize, faFaceFrown, faFrown, faPrescription, faShop, faStoreAlt, faFloppyDisk, faSave, faVihara, faScaleUnbalanced, faBalanceScaleLeft, faSortUp, faSortAsc, faCommentDots, faCommenting, faPlantWilt, faDiamond, faFaceGrinSquint, faGrinSquint, faHandHoldingDollar, faHandHoldingUsd, faBacterium, faHandPointer, faDrumSteelpan, faHandScissors, faHandsPraying, faPrayingHands, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faBiohazard, faLocationCrosshairs, faLocation, faMarsDouble, faChildDress, faUsersBetweenLines, faLungsVirus, faFaceGrinTears, faGrinTears, faPhone, faCalendarXmark, faCalendarTimes, faChildReaching, faHeadSideVirus, faUserGear, faUserCog, faArrowUp19, faSortNumericUp, faDoorClosed, faShieldVirus, faDiceSix, faMosquitoNet, faBridgeWater, faPersonBooth, faTextWidth, faHatWizard, faPenFancy, faPersonDigging, faDigging, faTrash, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faBookMedical, faPoo, faQuoteRight, faQuoteRightAlt, faShirt, faTShirt, faTshirt, faCubes, faDivide, faTengeSign, faTenge, faHeadphones, faHandsHolding, faHandsClapping, faRepublican, faArrowLeft, faPersonCircleXmark, faRuler, faAlignLeft, faDiceD6, faRestroom, faJ, faUsersViewfinder, faFileVideo, faUpRightFromSquare, faExternalLinkAlt, faTableCells, faTh, faFilePdf, faBookBible, faBible, faO, faSuitcaseMedical, faMedkit, faUserSecret, faOtter, faPersonDress, faFemale, faCommentDollar, faBusinessTime, faBriefcaseClock, faTableCellsLarge, faThLarge, faBookTanakh, faTanakh, faPhoneVolume, faVolumeControlPhone, faHatCowboySide, faClipboardUser, faChild, faLiraSign, faSatellite, faPlaneLock, faTag, faComment, faCakeCandles, faBirthdayCake, faCake, faEnvelope, faAnglesUp, faAngleDoubleUp, faPaperclip, faArrowRightToCity, faRibbon, faLungs, faArrowUp91, faSortNumericUpAlt, faLitecoinSign, faBorderNone, faCircleNodes, faParachuteBox, faIndent, faTruckFieldUn, faHourglass, faHourglassEmpty, faMountain, faUserDoctor, faUserMd, faCircleInfo, faInfoCircle, faCloudMeatball, faCamera, faCameraAlt, faSquareVirus, faMeteor, faCarOn, faSleigh, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandHoldingDroplet, faHandHoldingWater, faWater, faCalendarCheck, faBraille, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faLandmark, faTruck, faCrosshairs, faPersonCane, faTent, faVestPatches, faCheckDouble, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBillWheat, faCookie, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faDumbbell, faRectangleList, faListAlt, faTarpDroplet, faHouseMedicalCircleCheck, faPersonSkiingNordic, faSkiingNordic, faCalendarPlus, faPlaneArrival, faCircleLeft, faArrowAltCircleLeft, faTrainSubway, faSubway, faChartGantt, faIndianRupeeSign, faIndianRupee, faInr, faCropSimple, faCropAlt, faMoneyBill1, faMoneyBillAlt, faLeftLong, faLongArrowAltLeft, faDna, faVirusSlash, faMinus, faSubtract, faChildRifle, faChess, faArrowLeftLong, faLongArrowLeft, faPlugCircleCheck, faStreetView, faFrancSign, faVolumeOff, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faGear, faCog, faDropletSlash, faTintSlash, faMosque, faMosquito, faStarOfDavid, faPersonMilitaryRifle, faCartShopping, faShoppingCart, faVials, faPlugCirclePlus, faPlaceOfWorship, faGripVertical, faArrowTurnUp, faLevelUp, faU, faSquareRootVariable, faSquareRootAlt, faClock, faClockFour, faBackwardStep, faStepBackward, faPallet, faFaucet, faBaseballBatBall, faS, faTimeline, faKeyboard, faCaretDown, faHouseChimneyMedical, faClinicMedical, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faMobileScreen, faMobileAndroidAlt, faPlaneUp, faPiggyBank, faBatteryHalf, faBattery3, faMountainCity, faCoins, faKhanda, faSliders, faSlidersH, faFolderTree, faNetworkWired, faMapPin, faHamsa, faCentSign, faFlask, faPersonPregnant, faWandSparkles, faEllipsisVertical, faEllipsisV, faTicket, faPowerOff, faRightLong, faLongArrowAltRight, faFlagUsa, faLaptopFile, faTty, faTeletype, faDiagramNext, faPersonRifle, faHouseMedicalCircleExclamation, faClosedCaptioning, faPersonHiking, faHiking, faVenusDouble, faImages, faCalculator, faPeoplePulling, faN, faCableCar, faTram, faCloudRain, faBuildingCircleXmark, faShip, faArrowsDownToLine, faDownload, faFaceGrin, faGrin, faDeleteLeft, faBackspace, faEyeDropper, faEyeDropperEmpty, faEyedropper, faFileCircleCheck, faForward, faMobile, faMobileAndroid, faMobilePhone, faFaceMeh, faMeh, faAlignCenter, faBookSkull, faBookDead, faIdCard, faDriversLicense, faOutdent, faDedent, faHeartCircleExclamation, faHouse, faHome, faHomeAlt, faHomeLgAlt, faCalendarWeek, faLaptopMedical, faB, faFileMedical, faDiceOne, faKiwiBird, faArrowRightArrowLeft, faExchange, faRotateRight, faRedoAlt, faRotateForward, faUtensils, faCutlery, faArrowUpWideShort, faSortAmountUp, faMillSign, faBowlRice, faSkull, faTowerBroadcast, faBroadcastTower, faTruckPickup, faUpLong, faLongArrowAltUp, faStop, faCodeMerge, faUpload, faHurricane, faMound, faToiletPortable, faCompactDisc, faFileArrowDown, faFileDownload, faCaravan, faShieldCat, faBolt, faZap, faGlassWater, faOilWell, faVault, faMars, faToilet, faPlaneCircleXmark, faYenSign, faCny, faJpy, faRmb, faYen, faRubleSign, faRouble, faRub, faRuble, faSun, faGuitar, faFaceLaughWink, faLaughWink, faHorseHead, faBoreHole, faIndustry, faCircleDown, faArrowAltCircleDown, faArrowsTurnToDots, faFlorinSign, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faLessThan, faAngleDown, faCarTunnel, faHeadSideCough, faGripLines, faThumbsDown, faUserLock, faArrowRightLong, faLongArrowRight, faAnchorCircleXmark, faEllipsis, faEllipsisH, faChessPawn, faKitMedical, faFirstAid, faPersonThroughWindow, faToolbox, faHandsHoldingCircle, faBug, faCreditCard, faCreditCardAlt, faCar, faAutomobile, faHandHoldingHand, faBookOpenReader, faBookReader, faMountainSun, faArrowsLeftRightToLine, faDiceD20, faTruckDroplet, faFileCircleXmark, faTemperatureArrowUp, faTemperatureUp, faMedal, faBed, faSquareH, faHSquare, faPodcast, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faBell, faSuperscript, faPlugCircleXmark, faStarOfLife, faPhoneSlash, faPaintRoller, faHandshakeAngle, faHandsHelping, faLocationDot, faMapMarkerAlt, faFile, faGreaterThan, faPersonSwimming, faSwimmer, faArrowDown, faDroplet, faTint, faEraser, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faPersonBurst, faDove, faBatteryEmpty, faBattery0, faSocks, faInbox, faSection, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faEnvelopeOpenText, faHospital, faHospitalAlt, faHospitalWide, faWineBottle, faChessRook, faBarsStaggered, faReorder, faStream, faDharmachakra, faHotdog, faPersonWalkingWithCane, faBlind, faDrum, faIceCream, faHeartCircleBolt, faFax, faParagraph, faCheckToSlot, faVoteYea, faStarHalf, faBoxesStacked, faBoxes, faBoxesAlt, faLink, faChain, faEarListen, faAssistiveListeningSystems, faTreeCity, faPlay, faFont, faRupiahSign, faMagnifyingGlass, faSearch, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faPersonDotsFromLine, faDiagnoses, faTrashCanArrowUp, faTrashRestoreAlt, faNairaSign, faCartArrowDown, faWalkieTalkie, faFilePen, faFileEdit, faReceipt, faSquarePen, faPenSquare, faPencilSquare, faSuitcaseRolling, faPersonCircleExclamation, faChevronDown, faBatteryFull, faBattery, faBattery5, faSkullCrossbones, faCodeCompare, faListUl, faListDots, faSchoolLock, faTowerCell, faDownLong, faLongArrowAltDown, faRankingStar, faChessKing, faPersonHarassing, faBrazilianRealSign, faLandmarkDome, faLandmarkAlt, faArrowUp, faTv, faTelevision, faTvAlt, faShrimp, faListCheck, faTasks, faJugDetergent, faCircleUser, faUserCircle, faUserShield, faWind, faCarBurst, faCarCrash, faY, faPersonSnowboarding, faSnowboarding, faTruckFast, faShippingFast, faFish, faUserGraduate, faCircleHalfStroke, faAdjust, faClapperboard, faCircleRadiation, faRadiationAlt, faBaseball, faBaseballBall, faJetFighterUp, faDiagramProject, faProjectDiagram, faCopy, faVolumeXmark, faVolumeMute, faVolumeTimes, faHandSparkles, faGrip, faGripHorizontal, faShareFromSquare, faShareSquare, faGun, faSquarePhone, faPhoneSquare, faPlus, faAdd, faExpand, faComputer, faXmark, faClose, faMultiply, faRemove, faTimes, faArrowsUpDownLeftRight, faArrows, faChalkboardUser, faChalkboardTeacher, faPesoSign, faBuildingShield, faBaby, faUsersLine, faQuoteLeft, faQuoteLeftAlt, faTractor, faTrashArrowUp, faTrashRestore, faArrowDownUpLock, faLinesLeaning, faRulerCombined, faCopyright, faEquals, faBlender, faTeeth, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faMap, faRocket, faPhotoFilm, faPhotoVideo, faFolderMinus, faStore, faArrowTrendUp, faPlugCircleMinus, faSignHanging, faSign, faBezierCurve, faBellSlash, faTablet, faTabletAndroid, faSchoolFlag, faFill, faAngleUp, faDrumstickBite, faHollyBerry, faChevronLeft, faBacteria, faHandLizard, faDisease, faBriefcaseMedical, faGenderless, faChevronRight, faRetweet, faCarRear, faCarAlt, faPumpSoap, faVideoSlash, faBatteryQuarter, faBattery2, faRadio, faBabyCarriage, faCarriageBaby, faTrafficLight, faThermometer, faVrCardboard, faHandMiddleFinger, faPercent, faPercentage, faTruckMoving, faGlassWaterDroplet, faDisplay, faFaceSmile, faSmile, faThumbtack, faThumbTack, faTrophy, faPersonPraying, faPray, faHammer, faHandPeace, faRotate, faSyncAlt, faSpinner, faRobot, faPeace, faGears, faCogs, faWarehouse, faArrowUpRightDots, faSplotch, faFaceGrinHearts, faGrinHearts, faDiceFour, faSimCard, faTransgender, faTransgenderAlt, faMercury, faArrowTurnDown, faLevelDown, faPersonFallingBurst, faAward, faTicketSimple, faTicketAlt, faBuilding, faAnglesLeft, faAngleDoubleLeft, faQrcode, faClockRotateLeft, faHistory, faFaceGrinBeamSweat, faGrinBeamSweat, faFileExport, faArrowRightFromFile, faShield, faShieldBlank, faArrowUpShortWide, faSortAmountUpAlt, faHouseMedical, faGolfBallTee, faGolfBall, faCircleChevronLeft, faChevronCircleLeft, faHouseChimneyWindow, faPenNib, faTentArrowTurnLeft, faTents, faWandMagic, faMagic, faDog, faCarrot, faMoon, faWineGlassEmpty, faWineGlassAlt, faCheese, faYinYang, faMusic, faCodeCommit, faTemperatureLow, faPersonBiking, faBiking, faBroom, faShieldHeart, faGopuram, faEarthOceania, faGlobeOceania, faSquareXmark, faTimesSquare, faXmarkSquare, faHashtag, faUpRightAndDownLeftFromCenter, faExpandAlt, faOilCan, faT, faHippo, faChartColumn, faInfinity, faVialCircleCheck, faPersonArrowDownToLine, faVoicemail, faFan, faPersonWalkingLuggage, faUpDown, faArrowsAltV, faCloudMoonRain, faCalendar, faTrailer, faBahai, faHaykal, faSdCard, faDragon, faShoePrints, faCirclePlus, faPlusCircle, faFaceGrinTongueWink, faGrinTongueWink, faHandHolding, faPlugCircleExclamation, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faClone, faPersonWalkingArrowLoopLeft, faArrowUpZA, faSortAlphaUpAlt, faFireFlameCurved, faFireAlt, faTornado, faFileCirclePlus, faBookQuran, faQuran, faAnchor, faBorderAll, faFaceAngry, faAngry, faCookieBite, faArrowTrendDown, faRss, faFeed, faDrawPolygon, faScaleBalanced, faBalanceScale, faGaugeSimpleHigh, faTachometer, faTachometerFast, faShower, faDesktop, faDesktopAlt, faM, faTableList, faThList, faCommentSms, faSms, faBook, faUserPlus, faCheck, faBatteryThreeQuarters, faBattery4, faHouseCircleCheck, faAngleLeft, faDiagramSuccessor, faTruckArrowRight, faArrowsSplitUpAndLeft, faHandFist, faFistRaised, faCloudMoon, faBriefcase, faPersonFalling, faImagePortrait, faPortrait, faUserTag, faRug, faEarthEurope, faGlobeEurope, faCartFlatbedSuitcase, faLuggageCart, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faBahtSign, faBookOpen, faBookJournalWhills, faJournalWhills, faHandcuffs, faTriangleExclamation, faExclamationTriangle, faWarning, faDatabase, faShare, faArrowTurnRight, faMailForward, faBottleDroplet, faMaskFace, faHillRockslide, faRightLeft, faExchangeAlt, faPaperPlane, faRoadCircleExclamation, faDungeon, faAlignRight, faMoneyBill1Wave, faMoneyBillWaveAlt, faLifeRing, faHands, faSignLanguage, faSigning, faCalendarDay, faWaterLadder, faLadderWater, faSwimmingPool, faArrowsUpDown, faArrowsV, faFaceGrimace, faGrimace, faWheelchairMove, faWheelchairAlt, faTurnDown, faLevelDownAlt, faPersonWalkingArrowRight, faSquareEnvelope, faEnvelopeSquare, faDice, faBowlingBall, faBrain, faBandage, faBandAid, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faGifts, faHotel, faEarthAsia, faGlobeAsia, faIdCardClip, faIdCardAlt, faMagnifyingGlassPlus, faSearchPlus, faThumbsUp, faUserClock, faHandDots, faAllergies, faFileInvoice, faWindowMinimize, faMugSaucer, faCoffee, faBrush, faMask, faMagnifyingGlassMinus, faSearchMinus, faRulerVertical, faUserLarge, faUserAlt, faTrainTram, faUserNurse, faSyringe, faCloudSun, faStopwatch20, faSquareFull, faMagnet, faJar, faNoteSticky, faStickyNote, faBugSlash, faArrowUpFromWaterPump, faBone, faUserInjured, faFaceSadTear, faSadTear, faPlane, faTentArrowsDown, faExclamation, faArrowsSpin, faPrint, faTurkishLiraSign, faTry, faTurkishLira, faDollarSign, faDollar, faUsd, faX, faMagnifyingGlassDollar, faSearchDollar, faUsersGear, faUsersCog, faPersonMilitaryPointing, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faUmbrella, faTrowel, faD, faStapler, faMasksTheater, faTheaterMasks, faKipSign, faHandPointLeft, faHandshakeSimple, faHandshakeAlt, faJetFighter, faFighterJet, faSquareShareNodes, faShareAltSquare, faBarcode, faPlusMinus, faVideo, faVideoCamera, faGraduationCap, faMortarBoard, faHandHoldingMedical, faPersonCircleCheck, faTurnUp, faLevelUpAlt };\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n 'solid': 'fass'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n 'fass': 'fa-solid'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i; // TODO: this needs to support fass\n// TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n '900': 'fass'\n}), _familyProxy5));\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.2.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\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\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","import React from \"react\"\nimport \"./Button.css\"\nimport { Link } from \"react-router-dom\"\n\nconst STYLES = [\n \"btn--primary\",\n \"btn--form\",\n \"btn--form--text\",\n \"btn--outline\",\n \"btn--delete\",\n \"btn--danger\",\n \"btn--light\",\n \"btn--green\",\n \"btn--green-edge\",\n \"btn--primary-disabled\",\n \"btn--dropdown\",\n \"none\",\n]\n\nconst SIZES = [\"btn--xsmall\", \"btn--small\", \"btn--medium\", \"btn--large\"]\n\nexport const Button = ({\n children,\n type,\n onClick,\n buttonStyle,\n buttonSize,\n linkTo,\n id,\n}) => {\n const checkButtonStyle = STYLES.includes(buttonStyle)\n ? buttonStyle\n : STYLES[0]\n\n const checkButtonSize = SIZES.includes(buttonSize) ? buttonSize : SIZES[0]\n\n return linkTo ? (\n \n \n {children}\n \n \n ) : (\n \n {children}\n \n )\n}\n","import axios from \"axios\"\n\nexport const BASE_URL = process.env.REACT_APP_DDA_API_HOST\nconst PIPELINE_URL = process.env.REACT_APP_DDA_PIPELINE_HOST\n\nexport default axios.create({\n baseURL: BASE_URL,\n})\n\nexport const axiosPipeline = axios.create({\n baseURL: PIPELINE_URL,\n})\n\nexport const axiosPrivate = axios.create({\n baseURL: BASE_URL,\n headers: { \"Content-Type\": \"application/json\" },\n withCredentials: true,\n})\n","import axios from \"../api/axios\"\nimport useAuth from \"./useAuth\"\n\nconst useLogout = () => {\n const { setAuth } = useAuth()\n\n const logout = async () => {\n console.log(\"Logging out: \" + setAuth?.user?.email)\n try {\n const response = await axios.get(\"/v1/auth/logout\", {\n withCredentials: true,\n })\n setAuth({})\n localStorage.setItem(\"loggedIn\", JSON.stringify(false))\n } catch (err) {\n console.log(\"Unable to logout\")\n }\n }\n return logout\n}\n\nexport default useLogout\n","import React, { useState } from \"react\"\nimport \"./LanguageDropdown.css\"\nimport { useTranslation } from \"react-i18next\"\nimport { faGlobe } from \"@fortawesome/free-solid-svg-icons\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { Button } from \"./Button\"\n\nexport default function Dropdown() {\n const { t, i18n } = useTranslation()\n\n const changeLanguageHandler = (lang) => {\n i18n.changeLanguage(lang)\n }\n return (\n
\n \n
\n {\n changeLanguageHandler(\"sv\")\n }}\n >\n {t(\"languages.sv\")}\n
\n {\n changeLanguageHandler(\"en\")\n }}\n >\n {t(\"languages.en\")}\n
\n {\n changeLanguageHandler(\"dk\")\n }}\n >\n {t(\"languages.dk\")}\n \n {\n changeLanguageHandler(\"fi\")\n }}\n >\n {t(\"languages.fi\")}\n \n \n \n )\n}\n","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport * as React from \"react\";\n\nfunction SvgOtd(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"OTD-Horizontal-Positive-2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1280 342.01\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#6faddd;}.cls-1,.cls-2{stroke-width:0px;}.cls-2{fill:#191918;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"OTD-Horizontal-Positive-3\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Circle\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"m50.06,50.07c-8.8,8.8-16.49,18.38-22.96,28.4C-15.53,144.75-7.85,234,50.06,291.92c58,58,147.16,65.6,213.37,22.96-13.12,0-26.24-5.01-36.25-15.02-13.21-13.21-17.69-31.85-13.47-48.77-34.35,18.38-78.03,13.03-106.94-15.88-28.92-28.91-34.27-72.59-15.88-106.94,4.06-7.68,9.32-14.85,15.8-21.32l.09-.09.09-.09c15.54-15.71,15.54-41-.09-56.62-15.62-15.71-41.09-15.71-56.71,0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"m78.54,27.1c13.12,0,26.24,5.01,36.25,15.02,13.21,13.21,17.69,31.85,13.46,48.77,34.35-18.38,78.03-13.03,106.94,15.88,28.91,28.91,34.27,72.59,15.88,106.94-4.06,7.68-9.32,14.85-15.8,21.32l-.09.09-.09.09c-15.54,15.71-15.54,41,.09,56.62,15.62,15.62,41.08,15.62,56.71,0,8.8-8.8,16.49-18.38,22.96-28.4,42.64-66.2,35.04-155.45-22.96-213.37C233.9-7.85,144.74-15.53,78.54,27.1Z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Text\",\n className: \"cls-2\",\n d: \"m503.49,146.41c-12.69,0-24.4-2.94-35.12-8.83-10.6-6.02-19.03-14.32-25.31-24.92-6.15-10.73-9.22-22.76-9.22-36.11s3.08-25.31,9.22-35.91c6.28-10.6,14.72-18.84,25.31-24.72,10.73-6.02,22.43-9.03,35.12-9.03s24.53,3.01,35.12,9.03c10.73,5.89,19.17,14.13,25.31,24.72,6.15,10.6,9.22,22.57,9.22,35.91s-3.08,25.38-9.22,36.11c-6.15,10.6-14.58,18.9-25.31,24.92-10.6,5.89-22.31,8.83-35.12,8.83Zm0-19.43c9.03,0,17.07-2.03,24.14-6.08,7.06-4.19,12.56-10.07,16.48-17.66,4.06-7.72,6.08-16.61,6.08-26.69s-2.03-18.9-6.08-26.49c-3.92-7.59-9.42-13.41-16.48-17.46-7.06-4.06-15.11-6.08-24.14-6.08s-17.07,2.03-24.14,6.08-12.62,9.88-16.68,17.46c-3.92,7.59-5.89,16.42-5.89,26.49s1.96,18.97,5.89,26.69c4.06,7.59,9.61,13.47,16.68,17.66,7.06,4.06,15.11,6.08,24.14,6.08Zm146.22-91.83c8.51,0,16.09,1.77,22.76,5.3,6.8,3.53,12.1,8.76,15.89,15.7,3.8,6.93,5.69,15.31,5.69,25.12v63.77h-22.17v-60.44c0-9.68-2.42-17.07-7.26-22.17-4.84-5.23-11.44-7.85-19.82-7.85s-15.04,2.62-20.01,7.85c-4.84,5.1-7.26,12.49-7.26,22.17v60.44h-22.37V36.92h22.37v12.36c3.66-4.45,8.31-7.91,13.93-10.4,5.76-2.49,11.84-3.73,18.25-3.73Zm171.97,53.18c0,4.06-.26,7.72-.78,10.99h-82.61c.66,8.63,3.86,15.57,9.61,20.8,5.76,5.23,12.82,7.85,21.19,7.85,12.04,0,20.54-5.04,25.51-15.11h24.14c-3.27,9.94-9.22,18.12-17.86,24.53-8.5,6.28-19.1,9.42-31.79,9.42-10.33,0-19.62-2.29-27.86-6.87-8.11-4.71-14.52-11.25-19.23-19.62-4.58-8.5-6.87-18.31-6.87-29.43s2.23-20.86,6.67-29.24c4.58-8.5,10.92-15.04,19.03-19.62,8.24-4.58,17.66-6.87,28.26-6.87s19.3,2.22,27.27,6.67c7.98,4.45,14.2,10.73,18.64,18.84,4.45,7.98,6.67,17.2,6.67,27.67Zm-23.35-7.06c-.13-8.24-3.07-14.85-8.83-19.82-5.75-4.97-12.88-7.46-21.39-7.46-7.72,0-14.32,2.49-19.82,7.46-5.49,4.84-8.76,11.45-9.81,19.82h59.85ZM931.8,8.66v18.25h-36.3v118.13h-22.37V26.91h-36.5V8.66h95.17Zm167.86,28.26l-33.55,108.12h-23.55l-21.78-79.86-21.78,79.86h-23.55l-33.75-108.12h22.76l22.57,86.93,22.96-86.93h23.35l21.98,86.53,22.37-86.53h21.98Zm63.61,109.88c-10.2,0-19.43-2.29-27.67-6.87-8.24-4.71-14.72-11.25-19.43-19.62-4.71-8.5-7.06-18.31-7.06-29.43s2.42-20.73,7.26-29.24c4.84-8.5,11.44-15.04,19.82-19.62,8.37-4.58,17.72-6.87,28.06-6.87s19.69,2.29,28.06,6.87c8.37,4.58,14.98,11.12,19.82,19.62,4.84,8.5,7.26,18.25,7.26,29.24s-2.49,20.73-7.46,29.24c-4.97,8.5-11.77,15.11-20.41,19.82-8.51,4.58-17.92,6.87-28.26,6.87Zm0-19.43c5.75,0,11.12-1.37,16.09-4.12,5.1-2.75,9.22-6.87,12.36-12.36s4.71-12.17,4.71-20.01-1.51-14.46-4.51-19.82c-3.01-5.49-7-9.61-11.97-12.36-4.97-2.75-10.34-4.12-16.09-4.12s-11.12,1.37-16.09,4.12c-4.84,2.75-8.7,6.87-11.58,12.36-2.88,5.36-4.32,11.97-4.32,19.82,0,11.64,2.94,20.67,8.83,27.08,6.01,6.28,13.54,9.42,22.57,9.42Zm-677.45,68.98c14.52,0,27.21,2.81,38.07,8.44,10.99,5.49,19.43,13.47,25.31,23.94,6.02,10.33,9.03,22.43,9.03,36.3s-3.01,25.9-9.03,36.11c-5.89,10.2-14.32,18.05-25.31,23.55-10.86,5.36-23.55,8.05-38.07,8.05h-44.54v-136.37h44.54Zm0,118.13c15.96,0,28.19-4.32,36.69-12.95,8.5-8.63,12.75-20.8,12.75-36.5s-4.25-28.19-12.75-37.09c-8.5-8.9-20.74-13.34-36.69-13.34h-22.17v99.88h22.17Zm105.96-104.19c-4.05,0-7.46-1.37-10.2-4.12-2.75-2.75-4.12-6.15-4.12-10.2s1.37-7.46,4.12-10.2c2.75-2.75,6.15-4.12,10.2-4.12s7.26,1.37,10.01,4.12c2.75,2.75,4.12,6.15,4.12,10.2s-1.37,7.46-4.12,10.2c-2.75,2.75-6.08,4.12-10.01,4.12Zm10.99,14.32v108.12h-22.37v-108.12h22.37Zm96.09,92.42c-3.27,4.97-8.37,9.16-15.31,12.56-6.8,3.4-14.19,5.1-22.17,5.1-6.93,0-13.21-1.37-18.84-4.12-5.62-2.88-10.01-6.74-13.15-11.58-3.14-4.97-4.71-10.53-4.71-16.68,0-9.94,3.6-18.18,10.79-24.72,7.33-6.54,18.25-9.81,32.77-9.81h30.61c-.26-7.72-2.61-13.93-7.06-18.64-4.32-4.71-10.14-7.06-17.46-7.06-6.67,0-12.23,1.83-16.68,5.49-4.32,3.66-7.06,8.76-8.24,15.31h-21.98c1.57-11.9,6.61-21.58,15.11-29.04,8.63-7.46,19.56-11.18,32.77-11.18,8.63,0,16.42,1.9,23.35,5.69,7.06,3.66,12.63,9.03,16.68,16.09,4.19,7.06,6.28,15.37,6.28,24.92v63.38h-22.76v-15.7Zm-32.77-1.96c5.1,0,10.14-1.05,15.11-3.14,5.1-2.22,9.29-5.49,12.56-9.81,3.4-4.45,5.1-9.81,5.1-16.09v-.2h-30.61c-7.06,0-12.29,1.37-15.7,4.12-3.27,2.75-4.91,6.28-4.91,10.6s1.64,7.98,4.91,10.6c3.27,2.62,7.78,3.92,13.54,3.92Zm107.42-74.37c3.79-5.23,8.96-9.48,15.5-12.75,6.67-3.4,14.06-5.1,22.17-5.1,9.55,0,18.18,2.29,25.9,6.87,7.72,4.58,13.8,11.12,18.25,19.62,4.44,8.37,6.67,17.99,6.67,28.84s-2.23,20.6-6.67,29.24c-4.45,8.5-10.6,15.17-18.44,20.01-7.72,4.71-16.29,7.06-25.71,7.06-8.37,0-15.83-1.64-22.37-4.91-6.41-3.27-11.51-7.46-15.31-12.56v15.7h-22.37v-145.2h22.37v53.18Zm65.73,37.48c0-7.46-1.57-13.87-4.71-19.23-3.01-5.49-7.06-9.61-12.17-12.36-4.97-2.88-10.34-4.32-16.09-4.32s-10.99,1.44-16.09,4.32c-4.97,2.88-9.03,7.06-12.17,12.56-3.01,5.49-4.51,11.97-4.51,19.43s1.5,14,4.51,19.62c3.14,5.49,7.19,9.68,12.17,12.56,5.1,2.88,10.46,4.32,16.09,4.32s11.12-1.44,16.09-4.32c5.1-3.01,9.15-7.33,12.17-12.95,3.14-5.63,4.71-12.17,4.71-19.62Zm143.97-2.16c0,4.06-.26,7.72-.78,10.99h-82.61c.66,8.63,3.86,15.57,9.61,20.8,5.76,5.23,12.82,7.85,21.19,7.85,12.04,0,20.54-5.04,25.51-15.11h24.14c-3.27,9.94-9.22,18.12-17.86,24.53-8.5,6.28-19.1,9.42-31.79,9.42-10.33,0-19.62-2.29-27.86-6.87-8.11-4.71-14.52-11.25-19.23-19.62-4.58-8.5-6.87-18.31-6.87-29.43s2.23-20.86,6.67-29.24c4.58-8.5,10.92-15.04,19.03-19.62,8.24-4.58,17.66-6.87,28.26-6.87s19.3,2.22,27.27,6.67c7.98,4.45,14.2,10.73,18.64,18.84,4.45,7.98,6.67,17.2,6.67,27.67Zm-23.35-7.06c-.13-8.24-3.07-14.85-8.83-19.82-5.75-4.97-12.88-7.46-21.39-7.46-7.72,0-14.32,2.49-19.82,7.46-5.49,4.84-8.76,11.45-9.81,19.82h59.85Zm71.46-26.1v59.85c0,4.06.92,7,2.75,8.83,1.96,1.7,5.23,2.55,9.81,2.55h13.74v18.64h-17.66c-10.07,0-17.79-2.35-23.15-7.06-5.36-4.71-8.05-12.36-8.05-22.96v-59.85h-12.75v-18.25h12.75v-26.88h22.57v26.88h26.29v18.25h-26.29Zm146,33.16c0,4.06-.26,7.72-.78,10.99h-82.61c.66,8.63,3.86,15.57,9.61,20.8,5.76,5.23,12.82,7.85,21.19,7.85,12.04,0,20.54-5.04,25.51-15.11h24.14c-3.27,9.94-9.22,18.12-17.86,24.53-8.5,6.28-19.1,9.42-31.79,9.42-10.33,0-19.62-2.29-27.86-6.87-8.11-4.71-14.52-11.25-19.23-19.62-4.58-8.5-6.87-18.31-6.87-29.43s2.23-20.86,6.67-29.24c4.58-8.5,10.92-15.04,19.03-19.62,8.24-4.58,17.66-6.87,28.26-6.87s19.3,2.22,27.28,6.67c7.98,4.45,14.2,10.73,18.64,18.84,4.45,7.98,6.67,17.2,6.67,27.67Zm-23.35-7.06c-.13-8.24-3.07-14.85-8.83-19.82-5.75-4.97-12.88-7.46-21.39-7.46-7.72,0-14.32,2.49-19.82,7.46-5.49,4.84-8.76,11.45-9.81,19.82h59.85Zm84.61,65.54c-8.5,0-16.15-1.5-22.96-4.51-6.67-3.14-11.97-7.33-15.89-12.56-3.92-5.36-6.02-11.32-6.28-17.86h23.15c.39,4.58,2.55,8.44,6.48,11.58,4.06,3.01,9.09,4.51,15.11,4.51s11.12-1.18,14.52-3.53c3.53-2.49,5.3-5.63,5.3-9.42,0-4.06-1.96-7.06-5.89-9.03-3.79-1.96-9.88-4.12-18.25-6.48-8.11-2.22-14.72-4.38-19.82-6.48-5.1-2.09-9.55-5.3-13.34-9.61-3.66-4.32-5.49-10.01-5.49-17.07,0-5.76,1.7-10.99,5.1-15.7,3.4-4.84,8.24-8.63,14.52-11.38,6.41-2.75,13.74-4.12,21.98-4.12,12.3,0,22.17,3.14,29.63,9.42,7.59,6.15,11.64,14.59,12.17,25.31h-22.37c-.39-4.84-2.35-8.7-5.89-11.58-3.53-2.88-8.31-4.32-14.32-4.32s-10.4,1.11-13.54,3.34c-3.14,2.22-4.71,5.17-4.71,8.83,0,2.88,1.05,5.3,3.14,7.26s4.65,3.53,7.65,4.71c3.01,1.05,7.46,2.42,13.34,4.12,7.85,2.09,14.26,4.25,19.23,6.48,5.1,2.09,9.48,5.23,13.15,9.42s5.56,9.75,5.69,16.68c0,6.15-1.7,11.64-5.1,16.48-3.4,4.84-8.24,8.63-14.52,11.38-6.15,2.75-13.41,4.12-21.78,4.12Z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOtd);\nexport default __webpack_public_path__ + \"static/media/otd.f672a35553153e1c2fb97a678e84b73a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport * as React from \"react\";\n\nfunction SvgCe(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"280px\",\n height: \"200px\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n xmlSpace: \"preserve\",\n style: {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n },\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110,199.498744A100,100 0 0 1 100,200A100,100 0 0 1 100,0A100,100 0 0 1 110,0.501256L110,30.501256A70,70 0 0 0 100,30A70,70 0 0 0 100,170A70,70 0 0 0 110,169.498744Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M280,199.498744A100,100 0 0 1 270,200A100,100 0 0 1 270,0A100,100 0 0 1 280,0.501256L280,30.501256A70,70 0 0 0 270,30A70,70 0 0 0 201.620283,85L260,85L260,115L201.620283,115A70,70 0 0 0 270,170A70,70 0 0 0 280,169.498744Z\",\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCe);\nexport default __webpack_public_path__ + \"static/media/ce.4c5be815b2e66295af323e0da7dc896a.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport * as React from \"react\";\n\nfunction SvgFacebook(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 40 40\",\n style: {\n enableBackground: \"new 0 0 40 40\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\r\\n\\t.st0{fill:url(#SVGID_1_);}\\r\\n\\t.st1{fill:white;}\\r\\n\")), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -277.375,\n y1: 406.6018,\n x2: -277.375,\n y2: 407.5726,\n gradientTransform: \"matrix(40 0 0 -39.7778 11115.001 16212.334)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#ffffff20\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#ffffff20\"\n }\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M16.7,39.8C7.2,38.1,0,29.9,0,20C0,9,9,0,20,0s20,9,20,20c0,9.9-7.2,18.1-16.7,19.8l-1.1-0.9h-4.4L16.7,39.8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M27.8,25.6l0.9-5.6h-5.3v-3.9c0-1.6,0.6-2.8,3-2.8h2.6V8.2c-1.4-0.2-3-0.4-4.4-0.4c-4.6,0-7.8,2.8-7.8,7.8V20 h-5v5.6h5v14.1c1.1,0.2,2.2,0.3,3.3,0.3c1.1,0,2.2-0.1,3.3-0.3V25.6H27.8z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebook);\nexport default __webpack_public_path__ + \"static/media/facebook.e37d48c7557eff7e4f0c2c20c6fcf58e.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport * as React from \"react\";\n\nfunction SvgInstagram(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 132.004,\n height: 132,\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"b\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"none\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"none\",\n offset: 0.128\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"none\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"none\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.1,\n stopColor: \"none\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"none\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"none\"\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"c\",\n cx: 158.429,\n cy: 578.088,\n r: 65,\n xlinkHref: \"#a\",\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"matrix(0 -1.98198 1.8439 0 -1031.402 454.004)\",\n fx: 158.429,\n fy: 578.088\n }), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"d\",\n cx: 147.694,\n cy: 473.455,\n r: 65,\n xlinkHref: \"#b\",\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"matrix(.17394 .86872 -3.5818 .71718 1648.348 -458.493)\",\n fx: 147.694,\n fy: 473.455\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffffff20\",\n d: \"M65.03 0C37.888 0 29.95.028 28.407.156c-5.57.463-9.036 1.34-12.812 3.22-2.91 1.445-5.205 3.12-7.47 5.468C4 13.126 1.5 18.394.595 24.656c-.44 3.04-.568 3.66-.594 19.188-.01 5.176 0 11.988 0 21.125 0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56 3.44 7.14 10.01 12.5 17.75 14.5 2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.207 6.955-.55 9.78-1.28 7.79-2.01 14.24-7.29 17.75-14.53 1.765-3.64 2.66-7.18 3.065-12.317.088-1.12.125-18.977.125-36.81 0-17.836-.04-35.66-.128-36.78-.41-5.22-1.305-8.73-3.127-12.44-1.495-3.037-3.155-5.305-5.565-7.624C116.9 4 111.64 1.5 105.372.596 102.335.157 101.73.027 86.19 0H65.03z\",\n transform: \"translate(1.004 1)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffffff20\",\n d: \"M65.03 0C37.888 0 29.95.028 28.407.156c-5.57.463-9.036 1.34-12.812 3.22-2.91 1.445-5.205 3.12-7.47 5.468C4 13.126 1.5 18.394.595 24.656c-.44 3.04-.568 3.66-.594 19.188-.01 5.176 0 11.988 0 21.125 0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56 3.44 7.14 10.01 12.5 17.75 14.5 2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.207 6.955-.55 9.78-1.28 7.79-2.01 14.24-7.29 17.75-14.53 1.765-3.64 2.66-7.18 3.065-12.317.088-1.12.125-18.977.125-36.81 0-17.836-.04-35.66-.128-36.78-.41-5.22-1.305-8.73-3.127-12.44-1.495-3.037-3.155-5.305-5.565-7.624C116.9 4 111.64 1.5 105.372.596 102.335.157 101.73.027 86.19 0H65.03z\",\n transform: \"translate(1.004 1)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"white\",\n d: \"M66.004 18c-13.036 0-14.672.057-19.792.29-5.11.234-8.598 1.043-11.65 2.23-3.157 1.226-5.835 2.866-8.503 5.535-2.67 2.668-4.31 5.346-5.54 8.502-1.19 3.053-2 6.542-2.23 11.65C18.06 51.327 18 52.964 18 66s.058 14.667.29 19.787c.235 5.11 1.044 8.598 2.23 11.65 1.227 3.157 2.867 5.835 5.536 8.503 2.667 2.67 5.345 4.314 8.5 5.54 3.054 1.187 6.543 1.996 11.652 2.23 5.12.233 6.755.29 19.79.29 13.037 0 14.668-.057 19.788-.29 5.11-.234 8.602-1.043 11.656-2.23 3.156-1.226 5.83-2.87 8.497-5.54 2.67-2.668 4.31-5.346 5.54-8.502 1.18-3.053 1.99-6.542 2.23-11.65.23-5.12.29-6.752.29-19.788 0-13.036-.06-14.672-.29-19.792-.24-5.11-1.05-8.598-2.23-11.65-1.23-3.157-2.87-5.835-5.54-8.503-2.67-2.67-5.34-4.31-8.5-5.535-3.06-1.187-6.55-1.996-11.66-2.23-5.12-.233-6.75-.29-19.79-.29zm-4.306 8.65c1.278-.002 2.704 0 4.306 0 12.816 0 14.335.046 19.396.276 4.68.214 7.22.996 8.912 1.653 2.24.87 3.837 1.91 5.516 3.59 1.68 1.68 2.72 3.28 3.592 5.52.657 1.69 1.44 4.23 1.653 8.91.23 5.06.28 6.58.28 19.39s-.05 14.33-.28 19.39c-.214 4.68-.996 7.22-1.653 8.91-.87 2.24-1.912 3.835-3.592 5.514-1.68 1.68-3.275 2.72-5.516 3.59-1.69.66-4.232 1.44-8.912 1.654-5.06.23-6.58.28-19.396.28-12.817 0-14.336-.05-19.396-.28-4.68-.216-7.22-.998-8.913-1.655-2.24-.87-3.84-1.91-5.52-3.59-1.68-1.68-2.72-3.276-3.592-5.517-.657-1.69-1.44-4.23-1.653-8.91-.23-5.06-.276-6.58-.276-19.398s.046-14.33.276-19.39c.214-4.68.996-7.22 1.653-8.912.87-2.24 1.912-3.84 3.592-5.52 1.68-1.68 3.28-2.72 5.52-3.592 1.692-.66 4.233-1.44 8.913-1.655 4.428-.2 6.144-.26 15.09-.27zm29.928 7.97c-3.18 0-5.76 2.577-5.76 5.758 0 3.18 2.58 5.76 5.76 5.76 3.18 0 5.76-2.58 5.76-5.76 0-3.18-2.58-5.76-5.76-5.76zm-25.622 6.73c-13.613 0-24.65 11.037-24.65 24.65 0 13.613 11.037 24.645 24.65 24.645C79.617 90.645 90.65 79.613 90.65 66S79.616 41.35 66.003 41.35zm0 8.65c8.836 0 16 7.163 16 16 0 8.836-7.164 16-16 16-8.837 0-16-7.164-16-16 0-8.837 7.163-16 16-16z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInstagram);\nexport default __webpack_public_path__ + \"static/media/instagram.ba7ee7a6d00b763ed5cf909373015d9f.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport * as React from \"react\";\n\nfunction SvgOnetwoAnalytics(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 105,\n height: 31,\n viewBox: \"0 0 105 31\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_513_607)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.26482 9.56717C8.26482 9.56717 8.26482 9.56717 8.25938 9.57264C8.25938 9.57264 8.25938 9.57264 8.25391 9.57809C8.25391 9.57809 8.25391 9.57809 8.25938 9.57264C8.25938 9.57264 8.25938 9.57264 8.26482 9.56717Z\",\n fill: \"#181818\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.87042 5.18999C3.18978 5.87064 2.59589 6.61134 2.09542 7.38538C-1.20103 12.5102 -0.607131 19.4101 3.87042 23.8876C8.35467 28.3719 15.2478 28.9591 20.366 25.6626C19.3517 25.6626 18.3374 25.2756 17.5633 24.5015C16.5424 23.4806 16.1954 22.0392 16.5223 20.7313C13.8665 22.1527 10.49 21.7389 8.25458 19.5035C6.01911 17.2681 5.60539 13.8915 7.02674 11.2357C7.34037 10.6418 7.74743 10.0879 8.24788 9.58747C8.24788 9.58747 8.24788 9.58747 8.25458 9.58081C8.25458 9.58081 8.25458 9.58081 8.26124 9.57412C9.46236 8.35964 9.46236 6.40447 8.25458 5.19665C7.04676 3.98218 5.07823 3.98218 3.87042 5.19665\",\n fill: \"#181818\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.1768 19.5074C18.1768 19.5074 18.1768 19.5074 18.1822 19.502C18.1822 19.502 18.1822 19.502 18.1877 19.4965C18.1877 19.4965 18.1877 19.4965 18.1822 19.502C18.1768 19.5074 18.1822 19.502 18.1768 19.5074Z\",\n fill: \"#181818\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.07227 3.41456C7.08653 3.41456 8.10082 3.8016 8.8749 4.57567C9.89585 5.59663 10.2429 7.038 9.91587 8.3459C12.5717 6.92455 15.9482 7.33827 18.1837 9.57373C20.4191 11.8092 20.8328 15.1857 19.4115 17.8415C19.0979 18.4354 18.6908 18.9893 18.1904 19.4897C18.1904 19.4897 18.1903 19.4897 18.1837 19.4964C18.1837 19.4964 18.1837 19.4964 18.177 19.5031C16.9759 20.7176 16.9759 22.6727 18.1837 23.8805C19.3915 25.0883 21.36 25.0883 22.5678 23.8805C23.2484 23.1999 23.8424 22.4592 24.3428 21.6851C27.6393 16.567 27.052 9.66713 22.5678 5.18957C18.0836 0.712024 11.1904 0.11813 6.07227 3.41456Z\",\n fill: \"#72BE9E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.9251 12.6381C37.944 12.6381 37.039 12.4105 36.2096 11.9554C35.3904 11.4902 34.7381 10.848 34.2526 10.0288C33.7774 9.19951 33.5397 8.26908 33.5397 7.23751C33.5397 6.20593 33.7774 5.28055 34.2526 4.46136C34.7381 3.64217 35.3904 3.00502 36.2096 2.54991C37.039 2.08469 37.944 1.85208 38.9251 1.85208C39.9161 1.85208 40.8214 2.08469 41.6405 2.54991C42.47 3.00502 43.1223 3.64217 43.5975 4.46136C44.0727 5.28055 44.3105 6.20593 44.3105 7.23751C44.3105 8.26908 44.0727 9.19951 43.5975 10.0288C43.1223 10.848 42.47 11.4902 41.6405 11.9554C40.8214 12.4105 39.9161 12.6381 38.9251 12.6381ZM38.9251 11.1363C39.6229 11.1363 40.2449 10.9795 40.791 10.666C41.3371 10.3424 41.7619 9.88725 42.0653 9.30065C42.3789 8.70397 42.5356 8.01623 42.5356 7.23751C42.5356 6.45878 42.3789 5.77612 42.0653 5.18953C41.7619 4.60294 41.3371 4.15291 40.791 3.83938C40.2449 3.52585 39.6229 3.3691 38.9251 3.3691C38.2272 3.3691 37.6053 3.52585 37.0591 3.83938C36.513 4.15291 36.0833 4.60294 35.7697 5.18953C35.4663 5.77612 35.3146 6.45878 35.3146 7.23751C35.3146 8.01623 35.4663 8.70397 35.7697 9.30065C36.0833 9.88725 36.513 10.3424 37.0591 10.666C37.6053 10.9795 38.2272 11.1363 38.9251 11.1363ZM50.2295 4.03659C50.8871 4.03659 51.4735 4.17312 51.9893 4.44619C52.5153 4.71925 52.9249 5.1238 53.2181 5.6598C53.5116 6.19581 53.658 6.84308 53.658 7.60159V12.5319H51.9438V7.85949C51.9438 7.1111 51.7568 6.53968 51.3825 6.14525C51.0085 5.7407 50.4976 5.53844 49.8503 5.53844C49.2032 5.53844 48.6874 5.7407 48.3029 6.14525C47.9289 6.53968 47.7416 7.1111 47.7416 7.85949V12.5319H46.0122V4.17312H47.7416V5.12885C48.0249 4.78498 48.384 4.51699 48.8187 4.32483C49.2639 4.13266 49.7342 4.03659 50.2295 4.03659ZM63.5249 8.14772C63.5249 8.46125 63.5048 8.7444 63.4642 8.99725H57.0776C57.1283 9.66474 57.376 10.2007 57.8209 10.6053C58.2661 11.0098 58.8122 11.2121 59.4593 11.2121C60.3899 11.2121 61.0472 10.8227 61.4314 10.044H63.2973C63.0447 10.8126 62.5843 11.4447 61.9169 11.9403C61.2596 12.4257 60.4404 12.6684 59.4593 12.6684C58.6605 12.6684 57.9423 12.4914 57.3051 12.1375C56.6782 11.7734 56.1825 11.2677 55.8184 10.6205C55.4646 9.9631 55.2875 9.20459 55.2875 8.34493C55.2875 7.48528 55.4596 6.73184 55.8033 6.08457C56.1574 5.42721 56.6478 4.92151 57.2748 4.56755C57.9119 4.21359 58.6401 4.03659 59.4593 4.03659C60.2481 4.03659 60.9512 4.20851 61.5679 4.55238C62.185 4.89625 62.6655 5.38169 63.0091 6.00872C63.3531 6.62565 63.5249 7.33865 63.5249 8.14772ZM61.7196 7.60159C61.7097 6.96444 61.4822 6.4537 61.037 6.0694C60.5921 5.6851 60.041 5.49293 59.3834 5.49293C58.7868 5.49293 58.276 5.6851 57.8512 6.0694C57.4265 6.44361 57.1739 6.95432 57.0927 7.60159H61.7196ZM72.0384 1.98861V3.39944H69.2319V12.5319H67.5025V3.39944H64.6808V1.98861H72.0384ZM85.0158 4.17312L82.4217 12.5319H80.6013L78.9174 6.35763L77.2335 12.5319H75.4131L72.8038 4.17312H74.5635L76.3081 10.8935L78.083 4.17312H79.8883L81.5873 10.8632L83.3168 4.17312H85.0158ZM89.9339 12.6684C89.1451 12.6684 88.4321 12.4914 87.7949 12.1375C87.1578 11.7734 86.6572 11.2677 86.2931 10.6205C85.929 9.9631 85.747 9.20459 85.747 8.34493C85.747 7.4954 85.9339 6.74194 86.3083 6.08457C86.6822 5.42721 87.1931 4.92151 87.8404 4.56755C88.4875 4.21359 89.2107 4.03659 90.0098 4.03659C90.8085 4.03659 91.5317 4.21359 92.1791 4.56755C92.8262 4.92151 93.337 5.42721 93.7113 6.08457C94.0853 6.74194 94.2726 7.4954 94.2726 8.34493C94.2726 9.19446 94.0803 9.94793 93.6961 10.6053C93.3116 11.2627 92.7859 11.7734 92.1184 12.1375C91.4608 12.4914 90.7327 12.6684 89.9339 12.6684ZM89.9339 11.1666C90.3788 11.1666 90.7934 11.0604 91.1779 10.848C91.5723 10.6356 91.8909 10.3171 92.1336 9.89229C92.3763 9.46753 92.4977 8.95174 92.4977 8.34493C92.4977 7.73812 92.3813 7.22738 92.1488 6.81274C91.916 6.38798 91.6076 6.0694 91.2234 5.85702C90.8389 5.64463 90.4243 5.53844 89.9794 5.53844C89.5342 5.53844 89.1197 5.64463 88.7355 5.85702C88.3612 6.0694 88.0627 6.38798 87.8404 6.81274C87.6178 7.22738 87.5067 7.73812 87.5067 8.34493C87.5067 9.24502 87.7343 9.94285 88.1894 10.4384C88.6544 10.9239 89.2361 11.1666 89.9339 11.1666ZM40.4724 24.8884H36.0579L35.2994 27.0425H33.4941L37.2715 16.4841H39.274L43.0514 27.0425H41.2309L40.4724 24.8884ZM39.987 23.4776L38.2728 18.5776L36.5434 23.4776H39.987ZM48.911 18.5472C49.5686 18.5472 50.155 18.6838 50.6708 18.9568C51.1968 19.2299 51.6064 19.6344 51.8996 20.1704C52.1931 20.7064 52.3395 21.3537 52.3395 22.1122V27.0425H50.6253V22.3701C50.6253 21.6217 50.4383 21.0503 50.064 20.6559C49.69 20.2513 49.1792 20.0491 48.5318 20.0491C47.8847 20.0491 47.3689 20.2513 46.9844 20.6559C46.6104 21.0503 46.4231 21.6217 46.4231 22.3701V27.0425H44.6937V18.6838H46.4231V19.6395C46.7064 19.2956 47.0655 19.0276 47.5002 18.8355C47.9454 18.6433 48.4157 18.5472 48.911 18.5472ZM59.7033 25.8289C59.4507 26.2132 59.0563 26.5369 58.52 26.7998C57.9944 27.0628 57.4228 27.1943 56.8058 27.1943C56.2699 27.1943 55.7845 27.0881 55.3495 26.8757C54.9148 26.6532 54.5758 26.3548 54.3331 25.9806C54.0903 25.5963 53.969 25.1665 53.969 24.6912C53.969 23.9225 54.2473 23.2854 54.8033 22.7797C55.3699 22.2741 56.2142 22.0212 57.3368 22.0212H59.7033C59.6832 21.4245 59.5012 20.9441 59.1572 20.58C58.8234 20.216 58.3736 20.0339 57.807 20.0339C57.2913 20.0339 56.8615 20.1755 56.5176 20.4587C56.1838 20.7419 55.9715 21.1363 55.8804 21.642H54.1814C54.3027 20.7216 54.6922 19.9732 55.3495 19.3968C56.017 18.8203 56.8615 18.5321 57.8829 18.5321C58.5504 18.5321 59.1522 18.6787 59.6882 18.972C60.2343 19.2552 60.6643 19.6698 60.9776 20.216C61.3015 20.7621 61.4631 21.4043 61.4631 22.1426V27.0425H59.7033V25.8289ZM57.1699 25.6772C57.5643 25.6772 57.9538 25.5963 58.338 25.4345C58.7324 25.2626 59.0563 25.0097 59.3089 24.676C59.5721 24.3321 59.7033 23.9175 59.7033 23.432V23.4169H57.3368C56.7906 23.4169 56.3863 23.5231 56.1232 23.7354C55.8705 23.9478 55.7439 24.2209 55.7439 24.5546C55.7439 24.8985 55.8705 25.1716 56.1232 25.3738C56.3761 25.5761 56.725 25.6772 57.1699 25.6772ZM65.4749 15.8166V27.0425H63.7455V15.8166H65.4749ZM75.2699 18.6838L70.1424 30.9716H68.3523L70.0514 26.906L66.7594 18.6838H68.6861L71.0374 25.0553L73.4799 18.6838H75.2699ZM78.5925 20.0946V24.7215C78.5925 25.035 78.6634 25.2626 78.8049 25.4042C78.9566 25.5357 79.2096 25.6014 79.5634 25.6014H80.6254V27.0425H79.26C78.4814 27.0425 77.8845 26.8605 77.47 26.4964C77.0554 26.1323 76.848 25.5407 76.848 24.7215V20.0946H75.8619V18.6838H76.848V16.6054H78.5925V18.6838H80.6254V20.0946H78.5925ZM83.0991 17.5763C82.7858 17.5763 82.5226 17.4701 82.3102 17.2578C82.0979 17.0454 81.9917 16.7824 81.9917 16.4689C81.9917 16.1554 82.0979 15.8924 82.3102 15.6801C82.5226 15.4677 82.7858 15.3615 83.0991 15.3615C83.4025 15.3615 83.6604 15.4677 83.8728 15.6801C84.0852 15.8924 84.1913 16.1554 84.1913 16.4689C84.1913 16.7824 84.0852 17.0454 83.8728 17.2578C83.6604 17.4701 83.4025 17.5763 83.0991 17.5763ZM83.9486 18.6838V27.0425H82.2192V18.6838H83.9486ZM85.6427 22.8556C85.6427 21.9959 85.8149 21.2425 86.1585 20.5952C86.5127 19.9378 86.9982 19.4321 87.6149 19.0782C88.2319 18.7242 88.94 18.5472 89.7387 18.5472C90.7502 18.5472 91.5845 18.79 92.2418 19.2754C92.9093 19.7507 93.3594 20.4334 93.5919 21.3234H91.726C91.5743 20.9087 91.3316 20.5851 90.9978 20.3525C90.6641 20.1199 90.2446 20.0036 89.7387 20.0036C89.031 20.0036 88.4644 20.2564 88.0396 20.7621C87.6251 21.2577 87.4177 21.9555 87.4177 22.8556C87.4177 23.7557 87.6251 24.4586 88.0396 24.9642C88.4644 25.4699 89.031 25.7227 89.7387 25.7227C90.7399 25.7227 91.4025 25.2828 91.726 24.4029H93.5919C93.3492 25.2525 92.8941 25.9301 92.2266 26.4357C91.5591 26.9313 90.73 27.1791 89.7387 27.1791C88.94 27.1791 88.2319 27.0021 87.6149 26.6481C86.9982 26.284 86.5127 25.7784 86.1585 25.1311C85.8149 24.4737 85.6427 23.7152 85.6427 22.8556ZM98.3494 27.1791C97.6922 27.1791 97.1005 27.0628 96.5745 26.8302C96.0587 26.5874 95.6492 26.2638 95.3457 25.8593C95.0423 25.4446 94.8807 24.9844 94.8603 24.4788H96.6504C96.6807 24.8327 96.8476 25.1311 97.151 25.3738C97.4646 25.6064 97.8541 25.7227 98.3191 25.7227C98.8046 25.7227 99.1789 25.6317 99.4417 25.4497C99.7148 25.2575 99.8513 25.0148 99.8513 24.7215C99.8513 24.408 99.6996 24.1754 99.3962 24.0237C99.103 23.872 98.6327 23.7051 97.9854 23.5231C97.3584 23.3511 96.8476 23.1843 96.4532 23.0224C96.0587 22.8606 95.7151 22.6128 95.4216 22.2791C95.1386 21.9454 94.9968 21.5054 94.9968 20.9593C94.9968 20.5143 95.1284 20.1098 95.3913 19.7457C95.6544 19.3715 96.0284 19.0782 96.5139 18.8658C97.0095 18.6534 97.5758 18.5472 98.2129 18.5472C99.1637 18.5472 99.9271 18.79 100.504 19.2754C101.09 19.7507 101.404 20.403 101.444 21.2324H99.7148C99.6844 20.8581 99.5327 20.5598 99.2597 20.3373C98.9866 20.1148 98.6176 20.0036 98.1522 20.0036C97.6971 20.0036 97.3482 20.0895 97.1055 20.2615C96.8628 20.4334 96.7414 20.6609 96.7414 20.9441C96.7414 21.1666 96.8225 21.3537 96.9841 21.5054C97.146 21.6571 97.3433 21.7785 97.5758 21.8695C97.8086 21.9504 98.1522 22.0566 98.6073 22.1881C99.2141 22.3499 99.7098 22.5168 100.094 22.6887C100.488 22.8505 100.827 23.0932 101.11 23.4169C101.394 23.7405 101.54 24.1703 101.55 24.7063C101.55 25.1817 101.419 25.6064 101.156 25.9806C100.893 26.3548 100.519 26.6481 100.033 26.8605C99.5581 27.0729 98.9968 27.1791 98.3494 27.1791Z\",\n fill: \"#181818\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_513_607\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 104.213,\n height: 31,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOnetwoAnalytics);\nexport default __webpack_public_path__ + \"static/media/onetwo-analytics.9ca9893f4380854ef7a7609c0141c83a.svg\";\nexport { ForwardRef as ReactComponent };","import onetwoLogo from \"./images/otd.svg\"\nimport ce from \"./images/ce.svg\"\nimport facebook from \"./images/facebook.svg\"\nimport instagram from \"./images/instagram.svg\"\nimport onetwo_analytics_logo from \"./images/onetwo-analytics.svg\"\n\n\nexport const assets = {\n onetwoLogo,\n ce,\n facebook,\n instagram,\n onetwo_analytics_logo\n}\n","import React, { useState, useEffect } from \"react\"\nimport { useLocation, useNavigate, Link } from \"react-router-dom\"\nimport { useTranslation } from \"react-i18next\"\n\nimport { faTimes, faBars } from \"@fortawesome/free-solid-svg-icons\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\n\nimport \"./Navbar.css\"\nimport { Button } from \"./Button\"\n\nimport useAuth from \"../hooks/useAuth\"\nimport useLogout from \"../hooks/useLogout\"\nimport useProfiles from \"../hooks/useProfiles\"\nimport Dropdown from \"./LanguageDropdown\"\n\nimport { assets } from \"../assets/Assets\"\n\nfunction Navbar() {\n const { t } = useTranslation()\n const [click, setClick] = useState(false)\n const [buttonVisible, setButton] = useState(true)\n\n const handleClick = () => setClick(!click)\n const closeMobileMenu = () => setClick(false)\n\n const { profiles } = useProfiles()\n const { auth } = useAuth()\n const navigate = useNavigate()\n const location = useLocation()\n const activeLink = location.pathname + location.hash\n const loggedIn = auth.user ? true : false\n\n const logout = useLogout()\n\n const signOut = async () => {\n await logout()\n navigate(\"/\")\n }\n\n const showButton = () => {\n if (window.innerWidth <= 960) {\n setButton(false)\n } else {\n setButton(true)\n }\n }\n\n // When reloading page check if button should be displayed.\n useEffect(() => {\n // console.log(\"Logged in: \" + loggedIn)\n // console.log(\"Profiles loaded: \" + profiles)\n showButton()\n }, [])\n\n window.addEventListener(\"resize\", showButton)\n\n return (\n
\n )\n}\n\nexport default Navbar\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\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\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(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$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(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$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); 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 _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(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$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(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$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(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$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); 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 _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(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$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); 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 _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","export const OneTwoLink =(props) => {\n return (\n \n {props.text}\n \n )\n }","import React, { useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport i18next from \"i18next\"\n\nimport { assets } from \"../assets/Assets\"\n\nimport { OneTwoLink } from \"./OneTwoLink\"\nimport { BASE_URL } from \"../api/axios\"\n\nimport \"./Footer.css\"\n\nexport const Footer = () => {\n const { t, i18n } = useTranslation()\n let language = i18n.language\n return (\n
\n
\n
\n
\n \n\n
\n
\n
\n\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n\n \n\n
\n
\n \n
\n
\n\n
\n
\n
\n

\n {t(\"public.contact.developer\")}\n

\n

{t(\"public.contact.company\")}

\n

{t(\"public.contact.orgnumber\")}

\n
\n
\n
\n
\n )\n}\nexport default Footer\n","import React from \"react\"\n\nimport \"./Loading.css\"\n\nconst STYLES = [\"white\", \"onetwo--primary\", \"weak-white\"]\n\nexport function Loading({ color, context }) {\n const checkStyle = STYLES.includes(color) ? color : STYLES[0]\n\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport function SmallLoading({ color, context }) {\n const checkStyle = STYLES.includes(color) ? color : STYLES[0]\n\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import React, { useEffect, useState } from \"react\"\nimport { Button } from \"../Button\"\nimport { useTranslation } from \"react-i18next\"\n\nconst ProfileCardHeader = ({\n profileId,\n title,\n subtitle,\n isActive,\n setActive,\n}) => {\n const { t } = useTranslation()\n\n function toggle() {\n setActive(isActive ? false : true)\n }\n\n return (\n
\n \n {profileId ? t(\"icons.person\") : t(\"icons.personAdd\")}\n \n
\n
{title}
\n
{subtitle}
\n
\n \n \n
\n \n )\n}\n\nexport default ProfileCardHeader\n","import React from \"react\"\n\nconst ProfileCardBody = ({ children }) => {\n return
{children}
\n}\n\nexport default ProfileCardBody\n","import React from \"react\"\nimport { Loading } from \"../Loading\"\nimport { useTranslation } from \"react-i18next\"\nimport { Button } from \"../Button\"\n\nconst ProfileCardSubmit = ({\n inSubmit,\n message,\n confirmCode,\n successCode,\n errorCode,\n dismiss,\n}) => {\n const { t } = useTranslation()\n\n if (!errorCode && !successCode && !confirmCode)\n return (\n
\n

{message && t(\"home.profile.submit.\" + message)}

\n \n
\n )\n else if (confirmCode) {\n return (\n
\n

\n {confirmCode &&\n t(\"home.profile.submit.confirm.\" + confirmCode + \".headline\")}\n

\n

\n {confirmCode &&\n t(\"home.profile.submit.confirm.\" + confirmCode + \".description\")}\n

\n
\n dismiss()}\n >\n {t(\"home.profile.button.abort\")}\n \n dismiss(confirmCode)}\n >\n {t(\"home.profile.button.confirm\")}\n \n
\n
\n )\n } else if (errorCode)\n return (\n
\n

\n {errorCode &&\n t(\"home.profile.submit.error.\" + errorCode + \".headline\")}\n

\n

\n {errorCode &&\n t(\"home.profile.submit.error.\" + errorCode + \".description\")}\n

\n dismiss(errorCode)}\n >\n {t(\"home.profile.submit.error.\" + errorCode + \".button\")}\n \n
\n )\n else\n return (\n
\n

\n {successCode &&\n t(\"home.profile.submit.success.\" + successCode + \"Headline\")}\n

\n

\n {successCode &&\n t(\"home.profile.submit.success.\" + successCode + \"Description\")}\n

\n \n {t(\"home.profile.button.close\")}\n \n
\n )\n}\n\nexport default ProfileCardSubmit\n","export const THIS_YEAR = new Date().getFullYear()\nexport const T1_TREATMENTS = [\"INSULIN_BY_PEN\", \"INSULIN_BY_PUMP\"]\nexport const T2_TREATMENTS = [\"DIET_EXERCISE\", \"ORAL_ANTIDIABETIC_DRUGS\", \"LONG_ACTING_INSULIN\", \"MEAL_INSULIN\", \"GLP1_ANALOGUE\",]\n\nexport const TREATMENT_ID = {\n INSULIN_BY_PEN: 1,\n INSULIN_BY_PUMP: 2,\n DIET_EXERCISE: 6,\n ORAL_ANTIDIABETIC_DRUGS: 7,\n LONG_ACTING_INSULIN: 8,\n MEAL_INSULIN: 9,\n GLP1_ANALOGUE: 10,\n}\n\nexport const DIABETES_TYPES = [\n \"NOT_SET\",\n \"DIABETES_TYPE1\",\n \"DIABETES_TYPE2\",\n \"DIABETES_OTHER\",\n]\nexport const DIABETES_TYPE_ID = {\n DIABETES_TYPE1: 1,\n DIABETES_TYPE2: 2,\n DIABETES_OTHER: 3,\n}\n\nexport const GENDER_TYPES = [\"UNKNOWN\", \"MALE\", \"FEMALE\", \"OTHER\"]\nexport const GENDER_ID = {\n UNKNOWN: 4,\n MALE: 1,\n FEMALE: 2,\n OTHER: 3,\n}\n","export const getTreatments = (treatments) => {\n if (treatments == null) return []\n let result = []\n for (let i = 0; i < treatments.length; i++) {\n result.push(treatments[i].key)\n }\n return result\n}\n\nexport const getSelectableTreatments = (\n diabetesType,\n t1Treatments,\n t2Treatments\n) => {\n if (!diabetesType) {\n return []\n }\n if (diabetesType == \"DIABETES_TYPE1\") {\n return t1Treatments\n } else {\n return t2Treatments\n }\n}\n\nexport const getIsUser = (\n profile,\n profileForUserExists,\n user\n) => {\n if (!profile && profileForUserExists) return false\n if (!profile && !profileForUserExists) return true\n\n let isUser = false\n for (let i = 0; i < profile.relatedUsers.length; i++) {\n if (profile.relatedUsers[i].userId == user.id) {\n if (profile.relatedUsers[i].relationId == 1) {\n isUser = true\n }\n }\n }\n console.log(\"isUser: \" + isUser)\n return isUser\n}\n","import React from \"react\"\nimport { useTranslation } from \"react-i18next\"\n\nexport const ProfileFormNewProfile = ({ isUser, setIsUser, userFullName }) => {\n const { t } = useTranslation()\n\n return (\n <>\n
\n
\n {t(\"home.profile.whois\")}\n
\n
\n {\n setIsUser(true)\n }}\n className={`onetwo-icon card-new-profile-checkmark ${\n isUser ? \"checked\" : \"\"\n }`}\n >\n {t(\"icons.checkmark\")}\n \n

{t(\"home.profile.itsme\", { userFullName: userFullName })}

\n
\n
\n {\n setIsUser(false)\n }}\n className={`onetwo-icon card-new-profile-checkmark ${\n !isUser ? \"checked\" : \"\"\n }`}\n >\n {t(\"icons.checkmark\")}\n \n

{t(\"home.profile.caretaker\")}

\n
\n
\n \n )\n}\n","import React, { useState, useEffect } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Button } from \"./Button\"\n\nconst NAME_REGEX = /^[^0-9!\\\\|/\"'&%#()?*@><:;^¨+=€$§°,_]{2,}$/\nconst NATIONAL_ID_REGEX = /^[\\d]{8}-?[\\d]{4}$/\nconst PASSWORD_REGEX = /(?=.*\\d)(?=.*[a-zåöä])(?=.*[A-ZÅÄÖ]){8,}/\nconst THIS_YEAR = new Date().getFullYear()\n\nexport const isValidName = (name) => {\n return NAME_REGEX.test(name || \"\")\n}\n\nexport const isValidNationalId = (nationalId) => {\n if (nationalId == null) return true\n return NATIONAL_ID_REGEX.test(nationalId || \"\")\n}\n\nexport const isValidYear = (year) => {\n return THIS_YEAR - 120 < year && year <= THIS_YEAR\n}\n\nexport const isValidPassword = (password) => {\n return PASSWORD_REGEX.test(password || \"\")\n}\n\nexport const FormInput = ({\n id,\n label,\n value,\n disabled = false,\n autoComplete = \"off\",\n valid = null,\n reference,\n type,\n setValue,\n setFocus = () => {},\n}) => {\n const [valueChanged, setValueChanged] = useState(false)\n const [classNames, setClassNames] = useState(\"form-control\")\n\n useEffect(() => {\n if (valid == null) setClassNames(\"form-control empty-input\")\n else if (!valid && value != null)\n setClassNames(\"form-control failed-validation\")\n else if (!valid && value == null) setClassNames(\"form-control empty-input\")\n else if (!valueChanged) setClassNames(\"form-control empty-input\")\n else setClassNames(\"form-control\")\n }, [valid, valueChanged])\n\n useEffect(() => {}, [classNames])\n\n return (\n
\n \n {\n setValueChanged(true)\n setValue(e.target.value)\n }}\n aria-invalid={valid ? \"false\" : \"true\"}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n >\n
\n )\n}\n\nexport const FormSelect = ({\n id,\n label,\n value,\n fallbackValue,\n disabled,\n valid,\n reference,\n setValue,\n setFocus,\n options,\n}) => {\n const { t } = useTranslation()\n\n const [valueChanged, setValueChanged] = useState(false)\n const [classNames, setClassNames] = useState(\"form-control\")\n\n useEffect(() => {\n if (value == null || !valueChanged)\n setClassNames(\"form-control empty-input\")\n else if (!valid) setClassNames(\"form-control failed-validation\")\n else setClassNames(\"form-control\")\n }, [valid, valueChanged])\n\n return (\n
\n \n {\n setValueChanged(true)\n setValue(e.target.value)\n }}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n aria-invalid={valid ? \"false\" : \"true\"}\n >\n {options?.map((option) => {\n return (\n \n )\n })}\n \n
\n )\n}\n\nexport const FormCheckBoxes = ({\n id,\n label,\n values,\n disabled,\n setValue,\n optionList,\n}) => {\n const { t } = useTranslation()\n\n return (\n
\n \n
\n {optionList?.map((option) => {\n return (\n
\n setValue(option, e.target.checked)}\n aria-invalid=\"false\"\n >\n \n
\n )\n })}\n
\n
\n )\n}\n\nexport const FormButton = ({\n label,\n callback,\n buttonClass = \"btn--form\",\n buttonSize = \"btn--small\",\n}) => {\n return (\n \n {label}\n \n )\n}\n\nexport const FormCheckBox = ({ label, checked, callback }) => {\n const { t } = useTranslation()\n return (\n
\n {\n callback(checked ? false : true)\n }}\n className={`form-checkbox-icon ${checked ? \"checked\" : \"\"}`}\n >\n {t(\"icons.checkmark\")}\n \n

{label}

\n
\n )\n}\n","import { useEffect, useState, useRef } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport useAuth from \"../../hooks/useAuth\"\nimport ProfileCardSubmit from \"./ProfileCardSubmit\"\n\nimport {\n THIS_YEAR,\n T1_TREATMENTS,\n T2_TREATMENTS,\n TREATMENT_ID,\n DIABETES_TYPES,\n DIABETES_TYPE_ID,\n GENDER_TYPES,\n GENDER_ID,\n} from \"./ProfileCardConstants\"\n\nimport {\n getIsUser,\n getTreatments,\n getSelectableTreatments,\n} from \"./ProfileCardFormFunctions\"\n\nimport { ProfileFormNewProfile } from \"./ProfileCardFormElements\"\n\nimport {\n FormInput,\n FormSelect,\n FormCheckBoxes,\n FormButton,\n isValidName,\n isValidNationalId,\n isValidYear,\n} from \"../FormElements\"\n\nimport \"../Form.css\"\n\nexport default function ProfileCardForm({\n profile,\n profileForUserExists,\n updateProfile,\n createProfile,\n deleteProfile,\n setUploadMode,\n editMode,\n setEditMode,\n}) {\n const { t } = useTranslation()\n const { auth } = useAuth()\n\n const firstNameRef = useRef()\n const lastNameRef = useRef()\n const nationalIdRef = useRef()\n const diagnoseYearRef = useRef()\n const diabetesTypeRef = useRef()\n const birthYearRef = useRef()\n const genderRef = useRef()\n\n const [firstNameFocus, setFirstNameFocus] = useState(false)\n const [lastNameFocus, setLastNameFocus] = useState(false)\n const [nationalIdFocus, setNationalIdFocus] = useState(false)\n const [diabetesTypeFocus, setDiabetesTypeFocus] = useState(false)\n const [diagnoseYearFocus, setDiagnoseYearFocus] = useState(false)\n const [birthYearFocus, setBirthYearFocus] = useState(false)\n const [genderFocus, setGenderFocus] = useState(false)\n\n const initIsUser = getIsUser(\n profile,\n profileForUserExists,\n auth.user\n )\n\n /* Card Body states */\n\n const isNewProfile = !profile\n\n const [isUser, setIsUser] = useState(initIsUser)\n\n const [inSubmit, setSubmit] = useState(false)\n const [submitMessage, setSubmitMessage] = useState()\n const [errorCode, setErrorCode] = useState()\n const [successCode, setSuccessCode] = useState()\n const [confirmCode, setConfirmCode] = useState()\n\n /* Initial values */\n const initfirstName = isUser ? auth.user.firstName : profile?.firstName\n\n const initLastName = isUser ? auth.user.lastName : profile?.lastName\n const initNationalId = isUser ? auth.user.nationalId : profile?.nationalId\n const initDiagnoseYear = profile\n ? profile.conditions[0].diagnoseYear\n : THIS_YEAR\n const initAllTreatments = getSelectableTreatments(\n profile?.conditions[0].key,\n T1_TREATMENTS,\n T2_TREATMENTS\n )\n const initTreatments = getTreatments(profile?.treatments)\n\n /* Form states */\n\n const showNewProfileContext = useRef(!profileForUserExists && isNewProfile)\n const [firstName, setFirstName] = useState(initfirstName)\n const [validFirstName, setValidFirstName] = useState(false)\n\n const [lastName, setLastName] = useState(initLastName)\n const [validLastName, setValidLastName] = useState(false)\n\n const [nationalId, setNationalId] = useState(initNationalId)\n const [validNationalId, setValidNationalId] = useState(false)\n\n const [diabetesType, setDiabetesType] = useState(profile?.conditions[0].key)\n const [validDiabetesType, setValidDiabetesType] = useState(false)\n\n const [diagnoseYear, setDiagnoseYear] = useState(initDiagnoseYear)\n const [validDiagnoseYear, setValidDiagnoseYear] = useState(false)\n\n const [birthYear, setBirthYear] = useState(profile?.birthYear)\n const [validBirthYear, setValidBirthYear] = useState(false)\n\n const [gender, setGender] = useState(profile?.gender.key)\n const [validGender, setValidGender] = useState(false)\n\n const [allTreatments, setAllTreatments] = useState(initAllTreatments)\n const [treatments, setTreatments] = useState(initTreatments)\n\n const [nationalityId, setNationalityId] = useState(auth.user.nationalityId)\n\n /* Effects (validation and state change functions) */\n\n useEffect(() => {\n if (isUser) {\n setFirstName(auth.user.firstName)\n setLastName(auth.user.lastName)\n setNationalId(auth.user.nationalId)\n } else {\n setFirstName(profile?.firstName)\n setLastName(profile?.lastName)\n setNationalId(profile?.nationalId)\n }\n }, [isUser])\n\n useEffect(() => {\n setValidFirstName(isValidName(firstName))\n // console.log(\"firstName valid \" + validFirstName)\n }, [firstName])\n\n useEffect(() => {\n setValidLastName(isValidName(lastName))\n }, [lastName])\n\n useEffect(() => {\n const result = isValidNationalId(nationalId)\n if (nationalId != null) {\n if (result && !birthYear) {\n if (\n nationalId.substring(0, 4) > 1900 &&\n nationalId.substring(0, 4) <= THIS_YEAR\n ) {\n setBirthYear(nationalId.substring(0, 4))\n }\n }\n }\n setValidNationalId(result)\n }, [nationalId])\n\n useEffect(() => {\n if (diabetesType === \"NOT_SET\") {\n setAllTreatments()\n } else if (diabetesType === \"DIABETES_TYPE1\") {\n setAllTreatments(T1_TREATMENTS)\n } else {\n setAllTreatments(T2_TREATMENTS)\n }\n if (diabetesType == null) setValidDiabetesType(false)\n else if (diabetesType === \"NOT_SET\") setValidDiabetesType(false)\n else setValidDiabetesType(true)\n if (profile?.conditions[0].key === diabetesType)\n setTreatments(getTreatments(profile?.treatments))\n else setTreatments([])\n }, [diabetesType])\n\n useEffect(() => {\n if (gender == null || gender === \"UNKNOWN\") setValidGender(false)\n else setValidGender(true)\n }, [gender])\n\n useEffect(() => {\n setValidDiagnoseYear(isValidYear(diagnoseYear))\n }, [diagnoseYear])\n\n useEffect(() => {\n setValidBirthYear(isValidYear(birthYear))\n }, [birthYear])\n\n const updateTreatments = (treatment, checked) => {\n let newTreatments = treatments.filter((t) => t !== treatment)\n if (checked) newTreatments = [...newTreatments, treatment]\n setTreatments(newTreatments)\n }\n\n const resetFields = () => {\n setFirstName(initfirstName)\n setLastName(initLastName)\n setNationalId(initNationalId)\n setDiabetesType(profile?.conditions[0].key)\n setDiagnoseYear(initDiagnoseYear)\n setBirthYear(profile?.birthYear)\n setGender(profile?.gender.key)\n setTreatments(initTreatments)\n setAllTreatments(initAllTreatments)\n }\n\n const validateAll = () => {\n return (\n validFirstName &&\n validLastName &&\n validNationalId &&\n validBirthYear &&\n validDiagnoseYear &&\n validDiabetesType &&\n validGender\n )\n }\n\n const getProfileData = () => {\n const profileData = {\n firstName: firstName,\n lastName: lastName,\n nationalId: nationalId,\n birthYear: birthYear,\n gender: { id: GENDER_ID[gender] },\n conditions: [\n { id: DIABETES_TYPE_ID[diabetesType], diagnoseYear: diagnoseYear },\n ],\n treatments: treatments.map((treatment) => ({\n id: TREATMENT_ID[treatment],\n })),\n }\n // if (!isNewProfile) profileData[\"id\"] = profile.id\n return profileData\n }\n\n const upload = () => {\n setUploadMode(true)\n }\n\n // Clear submit message when submit turns false\n useEffect(() => {\n if (!inSubmit) setSubmitMessage()\n }, [inSubmit])\n\n const create = async () => {\n const validForm = validateAll()\n if (!validForm) {\n setErrorCode(\"ERROR_IN_FIELDS\")\n setSubmit(true)\n return\n }\n\n const profileData = {\n patient: getProfileData(),\n user_relation: {\n user_id: auth.user.id,\n relation: { id: isUser ? 1 : 2 },\n },\n }\n setSubmitMessage(\"CREATING_PROFILE\")\n setSubmit(true)\n try {\n await createProfile(profileData)\n setSubmit(false)\n } catch (error) {\n if (error === \"PATIENT_DOES_ALREADY_EXIST\") {\n setNationalIdFocus(true)\n setValidNationalId(false)\n }\n setErrorCode(error)\n }\n }\n\n const update = async () => {\n const validForm = validateAll()\n if (!validForm) {\n setErrorCode(\"ERROR_IN_FIELDS\")\n setSubmit(true)\n return\n }\n\n const profileData = {\n patient: getProfileData(),\n }\n setSubmitMessage(\"UPDATING_PROFILE\")\n setSubmit(true)\n try {\n await updateProfile(profile.id, profileData)\n setSuccessCode(\"update\")\n } catch (error) {\n if (error === \"PATIENT_DOES_ALREADY_EXIST\") {\n setNationalIdFocus(true)\n setValidNationalId(false)\n }\n setErrorCode(error)\n }\n }\n\n const confirmDelete = async () => {\n setConfirmCode(\"delete\")\n setSubmit(true)\n }\n\n const triggerDelete = async () => {\n setConfirmCode()\n setSubmitMessage(\"DELETING_PROFILE\")\n try {\n await deleteProfile(profile.id)\n dismiss()\n } catch (error) {\n setErrorCode(error)\n }\n }\n\n const dismiss = (action) => {\n if (action === \"delete\") {\n triggerDelete()\n return\n }\n setEditMode(false)\n setErrorCode()\n setSuccessCode()\n setConfirmCode()\n setSubmit(false)\n }\n\n return (\n <>\n
\n {showNewProfileContext.current && (\n \n )}\n
\n \n \n \n {nationalityId === 46 && (\n )}\n \n \n \n \n \n \n
\n
\n {!inSubmit && editMode && !isNewProfile && (\n {\n resetFields()\n setEditMode(false)\n }}\n />\n )}\n {!inSubmit && editMode && (\n \n )}\n\n {!inSubmit && !editMode && (\n <>\n \n \n {\n setEditMode(true)\n }}\n />\n \n )}\n
\n \n )\n}\n","import React from \"react\"\nimport Modal from \"react-modal\"\n\nimport \"./OneTwoModal.css\"\n\nModal.setAppElement(\"#root\")\n\nexport default function DexcomModal({ modalIsOpen, closeModal, children }) {\n return (\n
\n closeModal(false)}\n shouldCloseOnOverlayClick={false}\n >\n
{children}
\n \n
\n )\n}\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import axios from \"./axios\"\n\nconst uploadFile = async (file, patientId, token) => {\n let formData = new FormData()\n formData.append(\"file\", file)\n try {\n const response = await axios.post(\"/v1/patient/\" + patientId + \"/file\", formData, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data\n } catch (err) {\n throw err\n }\n}\n\nexport default uploadFile\n","import React from \"react\"\nimport { useTranslation } from \"react-i18next\"\n\nimport { Button } from \"../../Button\"\n\nexport function UploadFileList({ fileList, resetFileDrop, isLoading }) {\n const { t } = useTranslation()\n // const status = [\"RECEIVED\", \"UPLOADED\", \"ERROR\"]\n return (\n
\n
\n {fileList.map((item, index) => (\n \n

{item.file.name}

\n

{t(\"errors.\" + item.message)}

\n \n {t(\"icons.\" + item.icon)}\n \n
\n ))}\n
\n
\n {isLoading ? null : (\n \n {t(\"home.data.upload.moreFiles\")}\n \n )}\n
\n \n )\n}\n\nexport default UploadFileList\n","import React, { useEffect, useState } from \"react\"\nimport useAuth from \"../../../hooks/useAuth\"\n\nimport uploadFile from \"../../../api/uploadFile.js\"\n\nimport { Loading } from \"../../Loading\"\nimport UploadFileList from \"./UploadFileList\"\nimport { useTranslation } from \"react-i18next\"\n\nimport \"./Upload.css\"\nimport i18next from \"i18next\"\n\nexport default function UploadFile({ profileId, setuploadFilePipelineId }) {\n const { auth } = useAuth()\n const { t } = useTranslation()\n\n const [isMounted, setMounted] = useState(false)\n const [isLoading, setloading] = useState(false)\n const [fileList, setFileList] = useState([])\n const [isProcessing, setProcessing] = useState(false)\n const [uploadResult, setUploadResult] = useState(\"\")\n let numberOfFiles = 0\n let numberOfUploadedFiles = 0\n let errorCount = 0\n\n useEffect(() => {\n if (!isMounted) {\n addEventListeners()\n setMounted(true)\n }\n }, [])\n\n function unhighlight(event) {\n const dropAreaText = document.getElementById(\"drop-area-text\" + profileId)\n const dropArea = document.getElementById(\"drop-area\" + profileId)\n\n dropAreaText.innerHTML = t(\"home.data.upload.dropArea.drag\")\n dropArea.classList.remove(\"highlight\")\n dropAreaText.classList.add(\"onetwo-green\")\n }\n function highlight(event) {\n const dropAreaText = document.getElementById(\"drop-area-text\" + profileId)\n const dropArea = document.getElementById(\"drop-area\" + profileId)\n\n dropAreaText.innerHTML = t(\"home.data.upload.dropArea.drop\")\n dropArea.classList.add(\"highlight\")\n dropAreaText.classList.remove(\"onetwo-green\")\n }\n function preventDefaults(e) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n function addEventListeners() {\n const dropArea = document.getElementById(\"drop-area\" + profileId)\n const dropAreaText = document.getElementById(\"drop-area-text\" + profileId)\n ;[\"dragenter\", \"dragover\", \"dragleave\", \"drop\"].forEach((eventName) => {\n dropArea.addEventListener(eventName, preventDefaults)\n dropAreaText.addEventListener(eventName, preventDefaults)\n })\n ;[\"dragleave\", \"drop\"].forEach((eventName) => {\n dropArea.addEventListener(eventName, unhighlight)\n dropAreaText.addEventListener(eventName, unhighlight)\n })\n ;[\"dragenter\", \"dragover\"].forEach((eventName) => {\n dropArea.addEventListener(eventName, highlight)\n dropAreaText.addEventListener(eventName, highlight)\n })\n dropArea.addEventListener(\"drop\", handleDrop)\n dropAreaText.addEventListener(\"drop\", handleDrop)\n }\n\n function handlePick(event) {\n let files = event.target.files\n handleFiles(files)\n }\n\n function handleDrop(event) {\n let dt = event.dataTransfer\n handleFiles(dt.files)\n }\n\n function handleFiles(files) {\n setProcessing(true)\n setloading(true)\n let tempList = []\n for (const _file of files) {\n numberOfFiles++\n tempList.push({\n file: _file,\n status: \"RECEIVED\",\n id: numberOfFiles,\n message: \"NULL\",\n icon: \"NULL\",\n })\n fileHandler(_file, profileId, numberOfFiles)\n }\n setFileList(tempList)\n }\n\n function fileHandler(file, profileId, id) {\n setProcessing(true)\n setloading(true)\n uploadFile(file, profileId, auth.accessToken)\n .then((data) => {\n setuploadFilePipelineId(data.pipeline_item_id)\n numberOfUploadedFiles++\n setFileList(function (prev) {\n const newState = prev.map((obj) => {\n if (obj.id === id) {\n return {\n ...obj,\n status: \"UPLOADED\",\n message: \"NULL\",\n icon: \"checkmark\",\n }\n }\n return obj\n })\n return newState\n })\n })\n .catch((error) => {\n errorCount++\n let errorMessage = error.response.data.error.message\n setFileList(function (prev) {\n const newState = prev.map((obj) => {\n if (obj.id === id) {\n return {\n ...obj,\n status: \"ERROR\",\n message: errorMessage,\n icon: \"alert\",\n }\n }\n return obj\n })\n return newState\n })\n })\n .then(() => {\n if (errorCount + numberOfUploadedFiles === numberOfFiles) {\n setloading(false)\n if (errorCount === numberOfFiles) {\n setUploadResult(t(\"home.data.upload.dropArea.doneWithErrors\"))\n } else if (numberOfUploadedFiles === numberOfFiles) {\n setUploadResult(t(\"home.data.upload.dropArea.done\"))\n } else {\n setUploadResult(t(\"home.data.upload.dropArea.doneWithSomeErrors\"))\n }\n }\n })\n }\n\n function resetFileDrop() {\n setProcessing(false)\n setloading(false)\n setUploadResult(\"\")\n numberOfFiles = 0\n errorCount = 0\n numberOfUploadedFiles = 0\n }\n\n function clearInput(event) {\n event.target.value = \"\"\n }\n\n return (\n
\n
\n

{t(\"home.data.upload.disclaimer\")}

\n
\n
\n {isLoading ? (\n \n ) : (\n
{uploadResult}
\n )}\n
\n
\n \n
\n
\n \n \n {t(\"home.data.upload.dropArea.dropHere\")}\n

\n
\n
\n
\n \n {t(\"home.data.upload.button\")}\n \n clearInput(event)}\n onChange={function (event) {\n handlePick(event)\n }}\n type=\"file\"\n className=\"\"\n id={\"file-upload-input\" + profileId}\n hidden\n multiple\n />\n
\n {t(\"home.data.upload.help\")}\n \n {t(\"home.data.upload.clickhere\")}\n \n
\n
\n
\n
\n \n )\n}\n","import React, { useState } from \"react\"\n\nimport OneTwoModal from \"../OneTwoModal\"\nimport { Button } from \"../../Button\"\nimport { FormButton } from \"../../FormElements\"\nimport UploadFile from \"./UploadFile\"\nimport { useTranslation } from \"react-i18next\"\n\n// import \"./Upload.css\"\n\nexport default function Upload({\n uploadModalOpen,\n setUploadModalOpen,\n profile,\n refreshProfile,\n setuploadFilePipelineId,\n}) {\n const { t } = useTranslation()\n\n return (\n
\n \n
\n
\n
\n
{t(\"home.data.upload.title\")}
\n
{t(\"home.data.upload.text\")}
\n
\n
\n
\n
\n

\n {t(\"home.data.upload.titleConnected\", {\n name: profile.firstName + \" \" + profile.lastName,\n })}\n

\n
\n \n
\n
\n {\n refreshProfile()\n setUploadModalOpen(false)\n }}\n buttonStyle=\"btn--primary\"\n buttonSize=\"btn--small\"\n >\n {t(\"home.data.upload.close\")}\n \n
\n
\n \n
\n )\n}\n","import axios from \"./axios\"\n\nexport const initOauth = async (token, profile_id) => {\n try {\n const params = { source: \"web\", patientId: profile_id }\n const response = await axios.get(\"/v1/dexcom-oauth-init-url\", {\n params: params,\n // signal: controller.signal,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data[\"oauthUrl\"]\n } catch (err) {\n throw err\n }\n}\n","import axios from \"./axios\"\n\nexport const fetchDataForProfile = async (token, profileId) => {\n try {\n const response = await axios.post(\n \"/v1/patient/\" + profileId + \"/data\",\n \"\",\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n }\n )\n return response.data\n } catch (err) {\n throw err\n }\n}\n\nexport async function deleteDataForProfile(token, patientId) {\n try {\n const response = await axios.delete(\"/v1/patient/\" + patientId + \"/data\", {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data\n } catch (err) {\n throw err\n }\n}\n\nexport async function addNightscoutForProfile(\n authtoken,\n patientId,\n url,\n accessToken\n) {\n let dataService = { url: url, accessToken: accessToken }\n try {\n const response = await axios.post(\n \"/v1/patient/\" + patientId + \"/data_service/nightscout\",\n dataService,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + authtoken,\n },\n }\n )\n return response.data\n } catch (err) {\n throw err\n }\n}\n\nexport async function removeDataSourceForProfile(\n authtoken,\n patientId,\n dataServiceId\n) {\n try {\n const response = await axios.delete(\n \"/v1/patient/\" + patientId + \"/data_service/\" + dataServiceId,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + authtoken,\n },\n }\n )\n return response.data\n } catch (err) {\n throw err\n }\n}\n\nexport const activateDataSourceForProfile = async (\n token,\n patientId,\n dataServiceId\n) => {\n try {\n const response = await axios.put(\n \"/v1/patient/\" +\n patientId +\n \"/data_service/\" +\n dataServiceId +\n \"/activate\",\n \"\",\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n }\n )\n return response.data\n } catch (err) {\n throw err\n }\n}\n","import React, { useState, useEffect } from \"react\"\nimport OneTwoModal from \"../OneTwoModal\"\nimport { Button } from \"../../Button\"\nimport { initOauth } from \"../../../api/dexcom\"\nimport useAuth from \"../../../hooks/useAuth\"\nimport { useTranslation } from \"react-i18next\"\nimport { removeDataSourceForProfile } from \"../../../api/data.js\"\nimport { Loading } from \"../../Loading\"\nimport useWebSocket, { ReadyState } from \"react-use-websocket\"\n\nimport { BASE_URL } from \"../../../api/axios\"\n\nexport default function Dexcom({\n dexcomModalOpen,\n setDexcomModalOpen,\n setDexcomLoading,\n isDexcomLoading,\n dexcomConnected,\n setdexcomActive,\n setdexcomConnected,\n hasConnection,\n profile,\n refreshProfile,\n setDexcomWindow,\n patientId,\n}) {\n const { t } = useTranslation()\n const { auth } = useAuth()\n const [dexcomURL, setDexcomURL] = useState(\"\")\n const [dexcomWindow, setDexcomRedirectWindow] = useState()\n const [isButtonDisabled, disableButton] = useState(false)\n const [isCloseButtonDisabled, disableCloseButton] = useState(false)\n\n const [websocketMessage, setWebsocketMessage] = useState()\n const [socketUrl, setSocketUrl] = useState(\n BASE_URL.replace(\"http\", \"ws\") +\n \"/v1/patient/\" +\n patientId +\n \"/dexcom-oauth-init?authToken=\" +\n auth.accessToken\n )\n const { sendMessage, lastMessage } = useWebSocket(socketUrl, {\n onOpen: () => {\n console.log(\"Websocket open\")\n },\n shouldReconnect: (closeEvent) => true,\n reconnectInterval: (closeEvent) => 3000,\n reconnectAttempts: (closeEvent) => 3,\n })\n\n useEffect(() => {\n if (dexcomURL === \"\") {\n disableButton(true)\n } else {\n disableButton(false)\n }\n }, [dexcomURL])\n\n useEffect(() => {\n // console.log(lastMessage)\n try {\n let data = JSON.parse(lastMessage.data)\n if (data.status === \"NOT_AUTHENTICATED\") {\n setWebsocketMessage(\"NOT_AUTHENTICATED\")\n }\n if (data.status === \"INVALID_TOKEN\") {\n setWebsocketMessage(\"INVALID_TOKEN\")\n }\n if (data.status === \"INITIALIZED\") {\n setDexcomURL(data.oauthUrl)\n }\n if (data.status === \"DATA_FETCH\") {\n dexcomWindow.close()\n disableButton(true)\n disableCloseButton(true)\n setWebsocketMessage(\"DATA_FETCH\")\n setDexcomLoading(true)\n }\n if (data.status === \"RUNNING\") {\n setWebsocketMessage(\"RUNNING\")\n }\n if (data.status === \"FINISHED\") {\n setWebsocketMessage(\"FINISHED\")\n setDexcomLoading(false)\n setdexcomConnected(true)\n setdexcomActive(true)\n disableCloseButton(false)\n disableButton(false)\n }\n if (data.status === \"ERROR\") {\n setWebsocketMessage(\"ERROR\")\n disableCloseButton(false)\n setdexcomConnected(false)\n setDexcomLoading(false)\n disableButton(false)\n removeDataSourceForProfile(auth.accessToken, profile.id, 1).then(\n async (res) => {\n if (res.status === \"OK\") {\n await refreshProfile()\n setDexcomLoading(false)\n }\n }\n )\n }\n } catch {\n // console.log(\"error\")\n }\n }, [lastMessage])\n\n async function handleConnection() {\n if (hasConnection) {\n setDexcomLoading(true)\n setWebsocketMessage(\"REMOVING\")\n removeDataSourceForProfile(auth.accessToken, profile.id, 1).then(\n async (res) => {\n if (res.status === \"OK\") {\n await refreshProfile()\n setDexcomLoading(false)\n }\n }\n )\n } else {\n setDexcomRedirectWindow(\n window.open(dexcomURL, \"\", \"scrollbars=1, width=1100, height=800\")\n )\n }\n }\n useEffect(() => {\n if (hasConnection) {\n setWebsocketMessage(\"CONNECTED\")\n } else if (!hasConnection) {\n setWebsocketMessage(\"NOT_CONNECTED\")\n }\n }, [hasConnection])\n\n return (\n
\n \n
\n
\n
\n
{t(\"home.data.dexcom.title\")}
\n
{t(\"home.data.dexcom.text\")}
\n
\n
\n
\n
\n {hasConnection ? (\n

\n {t(\"home.data.dexcom.titleConnected\", {\n name: profile.firstName + \" \" + profile.lastName,\n })}\n

\n ) : (\n

\n {t(\"home.data.dexcom.titleNotConnected\", {\n name: profile.firstName + \" \" + profile.lastName,\n })}\n

\n )}\n
\n {websocketMessage === \"CONNECTED\" ? (\n

{t(\"home.data.dexcom.innertextConnected\")}

\n ) : websocketMessage === \"NOT_CONNECTED\" ? (\n

{t(\"home.data.dexcom.innertext\")}

\n ) : websocketMessage === \"DATA_FETCH\" ? (\n

{t(\"home.data.dexcom.fetching\")}

\n ) : websocketMessage === \"RUNNING\" ? (\n

{t(\"home.data.dexcom.running\")}

\n ) : websocketMessage === \"FINISHED\" ? (\n

{t(\"home.data.dexcom.finished\")}

\n ) : websocketMessage === \"REMOVING\" ? (\n

{t(\"home.data.dexcom.removing\")}

\n ) : websocketMessage === \"NOT_AUTHENTICATED\" ? (\n

{t(\"home.data.dexcom.notAuthenticated\")}

\n ) : websocketMessage === \"INVALID_TOKEN\" ? (\n

{t(\"home.data.dexcom.invalidToken\")}

\n ) : websocketMessage === \"ERROR\" ? (\n

{t(\"home.data.dexcom.error\")}

\n ) : null}\n
\n
\n
\n {isDexcomLoading ? : null}\n
\n
\n
\n {\n setDexcomModalOpen(false)\n }\n : null\n }\n buttonStyle={\n !isCloseButtonDisabled\n ? \"btn--primary\"\n : \"btn--primary-disabled\"\n }\n buttonSize=\"btn--small\"\n >\n {t(\"home.data.dexcom.close\")}\n \n
\n
\n {\n handleConnection()\n }\n : null\n }\n buttonStyle={\n !isButtonDisabled ? \"btn--primary\" : \"btn--primary-disabled\"\n }\n buttonSize=\"btn--small\"\n >\n {hasConnection\n ? t(\"home.data.dexcom.remove\")\n : t(\"home.data.dexcom.open\")}\n \n
\n
\n
\n
\n \n
\n )\n}\n","import React, { useState, useEffect } from \"react\"\nimport OneTwoModal from \"../OneTwoModal\"\nimport { Button } from \"../../Button\"\nimport { initOauth } from \"../../../api/dexcom\"\nimport useAuth from \"../../../hooks/useAuth\"\nimport { useTranslation } from \"react-i18next\"\nimport { removeDataSourceForProfile } from \"../../../api/data.js\"\nimport { Loading } from \"../../Loading\"\nimport useWebSocket, { ReadyState } from \"react-use-websocket\"\n\nimport { BASE_URL } from \"../../../api/axios\"\n\nexport default function Libre({\n libreModalOpen,\n setLibreModalOpen,\n setLibreLoading,\n isLibreLoading,\n libreConnected,\n setlibreActive,\n setlibreConnected,\n hasConnection,\n profile,\n refreshProfile,\n setLibreWindow,\n patientId,\n}) {\n const { t } = useTranslation()\n const { auth } = useAuth()\n const [libreURL, setLibreURL] = useState(\"\")\n const [libreWindow, setLibreRedirectWindow] = useState()\n const [isButtonDisabled, disableButton] = useState(false)\n const [isCloseButtonDisabled, disableCloseButton] = useState(false)\n\n const [websocketMessage, setWebsocketMessage] = useState()\n const [socketUrl, setSocketUrl] = useState(\n BASE_URL.replace(\"http\", \"ws\") +\n \"/v1/patient/\" +\n patientId +\n \"/libre-auth-init?authToken=\" +\n auth.accessToken\n )\n const { sendMessage, lastMessage } = useWebSocket(socketUrl, {\n onOpen: () => {\n console.log(\"Websocket open\")\n },\n shouldReconnect: (closeEvent) => true,\n reconnectInterval: (closeEvent) => 3000,\n reconnectAttempts: (closeEvent) => 3,\n })\n\n useEffect(() => {\n if (libreURL === \"\") {\n disableButton(true)\n } else {\n disableButton(false)\n }\n }, [libreURL])\n\n useEffect(() => {\n // console.log(lastMessage)\n try {\n let data = JSON.parse(lastMessage.data)\n if (data.status === \"NOT_AUTHENTICATED\") {\n setWebsocketMessage(\"NOT_AUTHENTICATED\")\n }\n if (data.status === \"INVALID_TOKEN\") {\n setWebsocketMessage(\"INVALID_TOKEN\")\n }\n if (data.status === \"INITIALIZED\") {\n setLibreURL(data.oauthUrl)\n }\n if (data.status === \"DATA_FETCH\") {\n libreWindow.close()\n disableButton(true)\n disableCloseButton(true)\n setWebsocketMessage(\"DATA_FETCH\")\n setLibreLoading(true)\n }\n if (data.status === \"RUNNING\") {\n setWebsocketMessage(\"RUNNING\")\n }\n if (data.status === \"FINISHED\") {\n setWebsocketMessage(\"FINISHED\")\n setLibreLoading(false)\n setlibreConnected(true)\n setlibreActive(true)\n disableCloseButton(false)\n refreshProfile()\n disableButton(false)\n }\n if (data.status === \"ERROR\") {\n setWebsocketMessage(\"ERROR\")\n disableCloseButton(false)\n setlibreConnected(false)\n setLibreLoading(false)\n disableButton(false)\n removeDataSourceForProfile(auth.accessToken, profile.id, 3).then(\n async (res) => {\n if (res.status === \"OK\") {\n await refreshProfile()\n setLibreLoading(false)\n }\n }\n )\n }\n } catch {\n // console.log(\"error\")\n }\n }, [lastMessage])\n\n async function handleConnection() {\n if (hasConnection) {\n setLibreLoading(true)\n setWebsocketMessage(\"REMOVING\")\n removeDataSourceForProfile(auth.accessToken, profile.id, 3).then(\n async (res) => {\n if (res.status === \"OK\") {\n await refreshProfile()\n setLibreLoading(false)\n }\n }\n )\n } else {\n setLibreRedirectWindow(\n window.open(libreURL, \"\", \"scrollbars=1, width=1100, height=800\")\n )\n }\n }\n useEffect(() => {\n if (hasConnection) {\n setWebsocketMessage(\"CONNECTED\")\n } else if (!hasConnection) {\n setWebsocketMessage(\"NOT_CONNECTED\")\n }\n }, [hasConnection])\n\n return (\n
\n \n
\n
\n
\n
{t(\"home.data.libre.title\")}
\n
{t(\"home.data.libre.text\")}
\n
\n
\n
\n
\n {hasConnection ? (\n

\n {t(\"home.data.libre.titleConnected\", {\n name: profile.firstName + \" \" + profile.lastName,\n })}\n

\n ) : (\n

\n {t(\"home.data.libre.titleNotConnected\", {\n name: profile.firstName + \" \" + profile.lastName,\n })}\n

\n )}\n
\n {websocketMessage === \"CONNECTED\" ? (\n

{t(\"home.data.libre.innertextConnected\")}

\n ) : websocketMessage === \"NOT_CONNECTED\" ? (\n

{t(\"home.data.libre.innertext\")}

\n ) : websocketMessage === \"DATA_FETCH\" ? (\n

{t(\"home.data.libre.fetching\")}

\n ) : websocketMessage === \"RUNNING\" ? (\n

{t(\"home.data.libre.running\")}

\n ) : websocketMessage === \"FINISHED\" ? (\n

{t(\"home.data.libre.finished\")}

\n ) : websocketMessage === \"REMOVING\" ? (\n

{t(\"home.data.libre.removing\")}

\n ) : websocketMessage === \"NOT_AUTHENTICATED\" ? (\n

{t(\"home.data.libre.notAuthenticated\")}

\n ) : websocketMessage === \"INVALID_TOKEN\" ? (\n

{t(\"home.data.libre.error\")}

\n ) : websocketMessage === \"ERROR\" ? (\n

{t(\"home.data.libre.error\")}

\n ) : null}\n
\n
\n
\n {isLibreLoading ? : null}\n
\n
\n
\n {\n setLibreModalOpen(false)\n }\n : null\n }\n buttonStyle={\n !isCloseButtonDisabled\n ? \"btn--primary\"\n : \"btn--primary-disabled\"\n }\n buttonSize=\"btn--small\"\n >\n {t(\"home.data.libre.close\")}\n \n
\n
\n {\n handleConnection()\n }\n : null\n }\n buttonStyle={\n !isButtonDisabled ? \"btn--primary\" : \"btn--primary-disabled\"\n }\n buttonSize=\"btn--small\"\n >\n {hasConnection\n ? t(\"home.data.libre.remove\")\n : t(\"home.data.libre.open\")}\n \n
\n
\n
\n
\n
\n
\n )\n}\n","import React, { useState } from \"react\"\nimport useAuth from \"../../../hooks/useAuth\"\nimport OneTwoModal from \"../OneTwoModal\"\nimport { FormButton, FormInput } from \"../../FormElements\"\nimport { Button } from \"../../Button\"\nimport axios from \"../../../api/axios\"\nimport { useTranslation } from \"react-i18next\"\nimport { useEffect } from \"react\"\nimport {\n addNightscoutForProfile,\n removeDataSourceForProfile,\n} from \"../../../api/data.js\"\n\nexport default function Nightscout({\n nightscoutModalOpen,\n setNightscoutModalOpen,\n hasConnection,\n profile,\n refreshProfile,\n}) {\n const { auth } = useAuth()\n const { t } = useTranslation()\n const [nightscoutURL, setNightscoutURL] = useState(\"https://\")\n const [validNightscoutURL, setValidNightscoutURL] = useState()\n const [nightscoutToken, setNightscoutToken] = useState(\"\")\n const [validNightscoutToken, setValidNightscoutToken] = useState()\n\n async function deleteNightscout() {\n await removeDataSourceForProfile(auth.accessToken, profile.id, 2)\n setNightscoutURL(\"\")\n setNightscoutToken(\"\")\n setValidNightscoutURL(false)\n refreshProfile()\n }\n\n const NightscoutLink = () => {\n return (\n
\n \n {nightscoutURL}\n \n {\n deleteNightscout()\n }}\n >\n {t(\"home.nightscout.remove\")}\n \n
\n )\n }\n const checkNightscout = () => {\n setValidNightscoutURL(false)\n axios\n .get(nightscoutURL + \"/api/v1/status?token=\" + nightscoutToken)\n .then((res) => {\n if (res.status === 200) {\n setValidNightscoutURL(true)\n } else {\n setValidNightscoutURL(false)\n }\n })\n }\n useEffect(() => {}, [validNightscoutURL])\n\n useEffect(() => {\n if (Array.isArray(profile.dataServices) > 0) {\n var nightscout = profile.dataServices.find(function (item) {\n return item.key === \"NIGHTSCOUT\"\n })\n if (typeof nightscout !== \"undefined\") {\n setNightscoutURL(nightscout.url)\n setNightscoutToken(nightscout.accessToken)\n }\n }\n }, [profile])\n\n async function save() {\n if (validNightscoutURL) {\n await addNightscoutForProfile(\n auth.accessToken,\n profile.id,\n nightscoutURL,\n nightscoutToken\n )\n refreshProfile()\n setNightscoutModalOpen(false)\n } else {\n console.log(\"cant save nightscout\")\n }\n }\n\n return (\n
\n \n
\n
\n
\n
\n {t(\"home.data.nightscout.title\")}\n
\n
\n {t(\"home.data.nightscout.text\")}\n
\n
\n
\n
\n
\n {hasConnection ? (\n

\n {t(\"home.data.nightscout.titleConnected\", {\n name: profile.firstName + \" \" + profile.lastName,\n })}\n

\n ) : (\n

\n {t(\"home.data.nightscout.titleNotConnected\", {\n name: profile.firstName + \" \" + profile.lastName,\n })}\n

\n )}\n
\n
\n \n \n
\n
\n \n
\n
\n {validNightscoutURL || hasConnection ? : null}\n
\n
\n
\n {\n refreshProfile()\n setNightscoutModalOpen(false)\n }}\n buttonStyle=\"btn--primary\"\n buttonSize=\"btn--small\"\n >\n {t(\"home.data.nightscout.close\")}\n \n
\n
\n \n {t(\"home.data.nightscout.save\")}\n \n
\n
\n
\n
\n \n
\n )\n}\n","import { t } from \"i18next\"\nimport { Button } from \"../../Button\"\nimport { faLink, faLinkSlash } from \"@fortawesome/free-solid-svg-icons\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { SmallLoading } from \"../../Loading\"\n\nexport const DataButton = ({\n isActive,\n hasConnection,\n makePrimary,\n label,\n callback,\n upload = false,\n isLoading,\n}) => {\n return (\n
\n \n {!upload ? (\n \n ) : null}\n {isLoading ? : label}\n \n {!isActive && !upload && hasConnection ? (\n \n ) : null}\n
\n )\n}\n","import axios from \"./axios\"\n\nconst getProfiles = async (token) => {\n try {\n const response = await axios.get(\"/v1/patients\", {\n // signal: controller.signal,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n // return []\n return response.data\n } catch (err) {\n throw err\n }\n}\n\nexport default getProfiles\n\nexport const dbPostProfile = async (profileData, token) => {\n try {\n const response = await axios.post(\"/v1/patient\", profileData, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data\n } catch (err) {\n throw err.response.data.error.message\n }\n}\n\nexport const dbPutProfile = async (profileId, profileData, token) => {\n try {\n const response = await axios.put(\"/v1/patient/\" + profileId, profileData, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data\n } catch (err) {\n throw err.response.data.error.message\n }\n}\n\nexport const dbDeleteProfile = async (id, token) => {\n try {\n const response = await axios.delete(\"/v1/patient/\" + id, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data\n } catch (err) {\n throw err.response.data.error.message\n }\n}\n","import { axiosPipeline } from \"./axios\"\n\nexport const getPipelineStatus = async (token, pipelineJobid) => {\n try {\n const response = await axiosPipeline.get(\"/status/\" + pipelineJobid, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data\n } catch (err) {\n throw err\n }\n}\n","import React, { useEffect, useState } from \"react\"\nimport { FormButton } from \"../FormElements\"\nimport { Button } from \"../Button\"\nimport { useTranslation } from \"react-i18next\"\nimport { SmallLoading } from \"../Loading\"\n\nimport useAuth from \"../../hooks/useAuth\"\nimport useProfiles from \"../../hooks/useProfiles\"\n\nimport Upload from \"./datahandlers/Upload\"\nimport Dexcom from \"./datahandlers/Dexcom\"\nimport Libre from \"./datahandlers/Libre\"\nimport Nightscout from \"./datahandlers/Nightscout\"\nimport { DataButton } from \"./datahandlers/DataButton\"\n\nimport getProfiles from \"../../api/profiles.js\"\nimport { getPipelineStatus } from \"../../api/pipeline.js\"\n\nimport {\n deleteDataForProfile,\n fetchDataForProfile,\n activateDataSourceForProfile,\n} from \"../../api/data.js\"\n\nimport \"./ProfileCardData.css\"\n\nexport default function ProfileCardData({ profile, setUploadMode }) {\n const { auth } = useAuth()\n const { t } = useTranslation()\n const { profiles, setProfiles } = useProfiles()\n\n const [isDataLoading, setDataLoading] = useState(false)\n const [isDataErasing, setDataErasing] = useState(false)\n const [isDexcomLoading, setDexcomLoading] = useState(false)\n const [isLibreLoading, setLibreLoading] = useState(false)\n const [isNightscoutLoading, setNightscoutLoading] = useState(false)\n\n const [nightscoutModalOpen, setNightscoutModalOpen] = useState(false)\n const [dexcomModalOpen, setDexcomModalOpen] = useState(false)\n const [libreModalOpen, setLibreModalOpen] = useState(false)\n const [uploadModalOpen, setUploadModalOpen] = useState(false)\n\n const [dexcomConnected, setdexcomConnected] = useState(false)\n const [libreConnected, setlibreConnected] = useState(false)\n const [dexcomActive, setdexcomActive] = useState(false)\n const [libreActive, setlibreActive] = useState(false)\n const [dexcomWindow, setDexcomWindow] = useState(false)\n const [libreWindow, setLibreWindow] = useState(false)\n\n const [nightscoutConnected, setnightscoutConnected] = useState(false)\n const [nightscoutActive, setnightscoutActive] = useState(false)\n\n const [uploadFilePipelineId, setuploadFilePipelineId] = useState(\"\")\n\n function setLoading() {\n setDataLoading(false)\n setDataErasing(false)\n setDexcomLoading(false)\n setLibreLoading(false)\n setNightscoutLoading(false)\n }\n async function refreshProfile() {\n const response = await getProfiles(auth.accessToken)\n if (JSON.stringify(response) !== JSON.stringify(profiles)) {\n setProfiles(response)\n handleDataConnection(profile)\n return \"UPDATED\"\n } else {\n return \"NOT_UPDATED\"\n }\n }\n\n function handleDataConnection(profile) {\n setnightscoutConnected(false)\n setnightscoutActive(false)\n setdexcomConnected(false)\n setlibreConnected(false)\n setdexcomActive(false)\n setlibreActive(false)\n if (Array.isArray(profile.dataServices) > 0) {\n console.log(profile)\n profile.dataServices.forEach((item) => {\n if (item.key === \"DEXCOM\") {\n setdexcomConnected(true)\n setdexcomActive(item.active)\n setLoading()\n }\n if (item.key === \"TERRA\") {\n setlibreConnected(true)\n setlibreActive(item.active)\n setLoading()\n }\n if (item.key === \"NIGHTSCOUT\") {\n setnightscoutConnected(true)\n setnightscoutActive(item.active)\n setLoading()\n }\n })\n }\n }\n\n async function makePrimary(source) {\n if (source === \"dexcom\") {\n setDexcomLoading(true)\n await activateDataSourceForProfile(auth.accessToken, profile.id, 1)\n refreshProfile()\n }\n if (source === \"libre\") {\n setLibreLoading(true)\n await activateDataSourceForProfile(auth.accessToken, profile.id, 3)\n refreshProfile()\n }\n if (source === \"nightscout\") {\n setNightscoutLoading(true)\n await activateDataSourceForProfile(auth.accessToken, profile.id, 2)\n refreshProfile()\n }\n }\n\n async function deleteData() {\n setDataErasing(true)\n const response = await deleteDataForProfile(auth.accessToken, profile.id)\n refreshProfile()\n return\n }\n\n async function pollPipeline(pipelineJobid) {\n let pipelineDone = false\n let retry = 0\n if (!pipelineDone) {\n let refreshIntervalId = setInterval(async () => {\n const response = await getPipelineStatus(\n auth.accessToken,\n pipelineJobid\n ).then((response) => {\n retry++\n if (retry === 15) {\n refreshProfile()\n setLoading(false)\n clearInterval(refreshIntervalId)\n }\n if (response.data.status === \"FINISHED\") {\n refreshProfile()\n setLoading(false)\n clearInterval(refreshIntervalId)\n }\n })\n }, 1000)\n }\n }\n\n async function fetchData() {\n setDataLoading(true)\n const response = await fetchDataForProfile(\n auth.accessToken,\n profile.id\n ).then((response) => {\n pollPipeline(response.pipeline_item_id)\n return\n })\n return\n }\n\n function uploadModal() {\n setDataLoading(true)\n pollPipeline(uploadFilePipelineId)\n setUploadModalOpen(false)\n }\n\n const close = () => {\n setUploadMode(false)\n }\n\n useEffect(() => {\n handleDataConnection(profile)\n }, [profile])\n\n return (\n <>\n
\n

{t(\"home.data.available\")}

\n
\n

\n {profile.dataFrom == null\n ? t(\"home.noData\")\n : t(\"home.data.datafrom\", {\n dataFrom: profile.dataFrom,\n dataTo: profile.dataTo,\n })}\n

\n
\n {profile.dataFrom !== null ? (\n deleteData()}\n buttonSize=\"btn--xsmall\"\n buttonStyle=\"btn--delete\"\n >\n {isDataErasing ? (\n \n ) : (\n t(\"home.profile.button.deleteData\")\n )}\n \n ) : null}\n
\n
\n {dexcomConnected || nightscoutConnected || libreConnected ? (\n <>\n fetchData()}\n buttonSize=\"btn--xsmall\"\n buttonStyle=\"btn--form\"\n >\n {isDataLoading ? (\n \n ) : (\n t(\"home.profile.button.fetchData\")\n )}\n \n

{t(\"home.data.fetchData\")}

\n \n ) : null}\n
\n
\n\n

{t(\"home.data.title\")}

\n

{t(\"home.data.text\")}

\n
\n {\n setDexcomModalOpen(true)\n }}\n isActive={dexcomActive}\n makePrimary={() => {\n makePrimary(\"dexcom\")\n }}\n hasConnection={dexcomConnected}\n isLoading={isDexcomLoading}\n />\n {\n setLibreModalOpen(true)\n }}\n isActive={libreActive}\n makePrimary={() => {\n makePrimary(\"libre\")\n }}\n hasConnection={libreConnected}\n isLoading={isLibreLoading}\n />\n\n {/* {\n setNightscoutModalOpen(true)\n }}\n isActive={nightscoutActive}\n makePrimary={() => {\n makePrimary(\"nightscout\")\n }}\n hasConnection={nightscoutConnected}\n isLoading={isNightscoutLoading}\n /> */}\n {\n setUploadModalOpen(true)\n }}\n isActive={false}\n upload={true}\n isLoading={false}\n />\n\n {/* MODALS */}\n {dexcomModalOpen && (\n \n )}\n {libreModalOpen && (\n \n )}\n \n \n
\n\n
\n \n
\n
\n \n )\n}\n","import React, { useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\n\nimport useAuth from \"../../hooks/useAuth\"\nimport useProfiles from \"../../hooks/useProfiles\"\nimport ProfileCardHeader from \"./ProfileCardHeader\"\nimport ProfileCardBody from \"./ProfileCardBody\"\nimport ProfileCardForm from \"./ProfileCardForm\"\nimport ProfileCardData from \"./ProfileCardData\"\n\nimport {\n dbPostProfile,\n dbPutProfile,\n dbDeleteProfile,\n} from \"../../api/profiles\"\n\nimport \"./ProfileCard.css\"\n\nexport const ProfileCard = ({ profile, isActive, setActiveCard }) => {\n const { t } = useTranslation()\n const { auth } = useAuth()\n const { profiles, setProfiles } = useProfiles()\n const cardTitle = profile\n ? profile.firstName + \" \" + profile.lastName\n : t(\"home.newProfile\")\n\n const [uploadMode, setUploadMode] = useState(false)\n const [editMode, setEditMode] = useState(!profile)\n\n const profileForUserExists =\n auth.user.patientRelations.map((po) => po.relation.key).indexOf(\"SELF\") >= 0\n\n const updateProfile = async (profileId, profileData) => {\n const response = await dbPutProfile(profileId, profileData, auth.accessToken)\n setProfiles(profiles.map((p) => (p.id === response.id ? response : p)))\n }\n\n const createProfile = async (profileData) => {\n const response = await dbPostProfile(profileData, auth.accessToken)\n setProfiles([...profiles, response])\n setActiveCard(response.id)\n }\n\n const deleteProfile = async (id) => {\n const response = await dbDeleteProfile(id, auth.accessToken)\n setProfiles(profiles.filter((p) => p.id !== id))\n }\n\n return (\n
\n setActiveCard(isActive ? null : profile?.id || 0)}\n >\n {isActive ? (\n \n {uploadMode ? (\n \n ) : (\n \n )}\n \n ) : (\n <>\n )}\n
\n )\n}\n","import React from \"react\"\n\nimport \"./Title.css\"\n\nexport function Title({ title }) {\n return (\n
\n

{title}

\n
\n )\n}\n","import React, { useState } from \"react\"\nimport useProfiles from \"../hooks/useProfiles\"\nimport Navbar from \"../component/Navbar\"\nimport Footer from \"../component/Footer\"\nimport { Loading } from \"../component/Loading\"\nimport { ProfileCard } from \"../component/card/ProfileCard\"\nimport { Title } from \"../component/Title\"\n\nimport \"./Page.css\"\nimport { t } from \"i18next\"\n\nfunction Home() {\n const { profiles } = useProfiles()\n const [activeCardId, setActiveCardId] = useState()\n\n return (\n
\n \n
\n 1\n ? t(\"home.titlePlural\")\n : t(\"home.titleSingular\")\n }\n />\n
\n

{t(\"home.paragraph\")}

\n
\n\n
\n {profiles === null ? (\n
\n \n
\n ) : (\n profiles.map((profile) => (\n \n ))\n )}\n \n
\n
\n
\n
\n )\n}\n\nexport default Home\n","import React from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport useAuth from \"../../hooks/useAuth\"\nimport { Title } from \"../../component/Title\"\n\nimport \"./Settings.css\"\n\nconst definition = { 1: \"terms\", 2: \"privacy_policy\" }\nconst BASE_URL = process.env.REACT_APP_DDA_API_HOST\n\nexport function Terms() {\n const { t, i18n } = useTranslation()\n const { auth } = useAuth()\n\n const approved = []\n\n async function getDocs(index) {\n let documentType = definition[approved[index].typeId]\n let version = approved[index].versionApproved\n let languageCode = \"sv\"\n\n window.open(\n BASE_URL +\n \"/v1/onetwo/legal?documentType=\" +\n documentType +\n \"&version=\" +\n version +\n \"&languageCode=\" +\n languageCode\n )\n }\n\n let sortedLegal = auth.user.legalApprovals.sort(function (a, b) {\n var x = a[\"versionApproved\"]\n var y = b[\"versionApproved\"]\n return x < y ? -1 : x > y ? 1 : 0\n })\n sortedLegal.reverse()\n approved.push(sortedLegal[0])\n approved.push(sortedLegal[1])\n\n return (\n
\n \n <p className=\"settings-paragraph\">{t(\"settings.terms.paragraph\")}</p>\n <div className=\"terms\">\n {approved.map(function (item, index) {\n return (\n <div\n className=\"terms-item\"\n key={index}\n onClick={() => getDocs(index)}\n >\n <div className=\"terms-item-col-1\">\n <div className=\"terms-document-link\">\n <i className=\"onetwo-icon terms-item-icon\">\n {t(\"icons.document\")}\n </i>\n </div>\n </div>\n\n <div className=\"terms-item-col-2\">\n <div className=\"terms-item-link\">\n <p className=\"terms-type\">\n {t(\"definition.termsType.\" + item.type)}\n </p>\n <div>\n <p>\n {t(\"settings.terms.dateApproved\") +\n \": \" +\n new Date(item.approvedAt).toLocaleString(i18n.language)}\n </p>\n <p>\n {t(\"settings.terms.version\") +\n \": \" +\n item.versionApproved}\n </p>\n </div>\n </div>\n </div>\n </div>\n )\n })}\n </div>\n </section>\n )\n}\n","import axios from \"./axios\"\n\nexport const dbDeleteAccount = async (userId, token) => {\n try {\n const response = await axios.delete(\"/v1/user/\" + userId, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data\n } catch (err) {\n throw err.response.data.error.message\n }\n}\n\nexport const dbPutUser = async (userId, userData, token) => {\n try {\n const response = await axios.put(\"/v1/user/\" + userId, userData, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return response.data\n } catch (err) {\n throw err.response.data.error.message\n }\n}\n","import React, { useEffect, useState, useRef, useSyncExternalStore } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport useAuth from \"../../hooks/useAuth\"\n\nimport { dbPutUser } from \"../../api/account\"\n\nimport { Loading } from \"../Loading\"\nimport { Button } from \"../Button\"\nimport { Title } from \"../../component/Title\"\n\nimport {\n FormInput,\n FormCheckBox,\n FormButton,\n isValidName,\n} from \"../FormElements\"\n\nimport \"./Settings.css\"\n\nexport const UserData = () => {\n const { t } = useTranslation()\n const { auth, setAuth } = useAuth()\n\n const [formChanged, setFormChanged] = useState(false)\n const [formState, setFormState] = useState(\"FORM\")\n const [errorDescription, setErrorDescription] = useState(\"\")\n\n const firstNameRef = useRef()\n const lastNameRef = useRef()\n const nationalIdRef = useRef()\n const emailRef = useRef()\n const phoneRef = useRef()\n\n const nationalId = auth?.user?.nationalId\n const email = auth?.user?.email\n\n const [firstName, setFirstName] = useState(auth.user.firstName)\n const [lastName, setLastName] = useState(auth.user.lastName)\n const [nationalityId, setNationalityId] = useState(auth.user.nationalityId)\n const [phone, setPhone] = useState(auth.user.phone)\n const [marketingOptIn, setMarketingOptIn] = useState(\n auth?.user?.marketingOptIn\n )\n\n useEffect(() => {\n if (\n firstName != auth.user.firstName ||\n lastName != auth.user.lastName ||\n phone != auth.user.phone ||\n marketingOptIn != auth.user.marketingOptIn\n )\n setFormChanged(true)\n else {\n setFormChanged(false)\n }\n }, [firstName, lastName, marketingOptIn, phone])\n\n const formIsValid = () => {\n return isValidName(firstName) && isValidName(lastName) && phone.length >= 10\n }\n\n const resetFields = () => {\n setFirstName(auth.user.firstName)\n setLastName(auth.user.lastName)\n setPhone(auth.user.phone)\n setMarketingOptIn(auth.user.marketingOptIn)\n }\n\n useEffect(() => {\n resetFields()\n }, [auth])\n\n const updateUser = async (e) => {\n e.preventDefault()\n\n setFormState(\"WAITING\")\n\n if (!formIsValid()) {\n setFormState(\"ERROR\")\n setErrorDescription(t(\"settings.userData.form.error.VALIDATION\"))\n return\n }\n\n try {\n const userData = {\n firstName: firstName,\n lastName: lastName,\n phone: phone,\n marketingOptIn: marketingOptIn,\n }\n const user = await dbPutUser(auth.user.id, userData, auth.accessToken)\n setAuth({\n user: user,\n roles: auth.roles,\n accessToken: auth.accessToken,\n })\n resetFields()\n setFormState(\"DONE\")\n } catch (err) {\n setFormState(\"ERROR\")\n if (!err?.response) {\n setErrorDescription(t(\"settings.userData.form.error.NO_RESPONSE\"))\n } else if (\"error\" in err.response.data) {\n setErrorDescription(\n t(\"settings.userData.form.error.\" + err.response.data.error.message)\n )\n } else {\n setErrorDescription(t(\"settings.userData.form.error.UPDATE_ERROR\"))\n }\n }\n }\n\n const Waiting = () => {\n return (\n <div className=\"userdata-widget\">\n <Loading color=\"white\" context=\"settings\" />\n </div>\n )\n }\n\n const SubmitComplete = () => {\n return (\n <div className=\"userdata-widget\">\n <p className=\"mb-2\">\n {formState == \"ERROR\"\n ? errorDescription\n : t(\"settings.userData.form.updated\")}\n </p>\n <Button\n buttonStyle=\"btn--form\"\n buttonSize=\"btn--small\"\n onClick={() => {\n setFormState(\"FORM\")\n }}\n >\n {t(\"settings.userData.button.dismiss\")}\n </Button>\n </div>\n )\n }\n\n const UserDataForm = (\n <form onSubmit={updateUser}>\n {nationalityId === 46 && (\n <FormInput\n id=\"nationalId\"\n label={t(\"settings.userData.label.nationalId\")}\n value={nationalId || \"\"}\n disabled={true}\n valid={true}\n reference={nationalIdRef}\n type=\"text\"\n setValue={() => {}}\n setFocus={() => {}}\n />)}\n <FormInput\n id=\"email\"\n label={t(\"settings.userData.label.email\")}\n value={email || \"\"}\n disabled={true}\n valid={true}\n reference={emailRef}\n type=\"text\"\n setValue={() => {}}\n setFocus={() => {}}\n />\n <FormInput\n id=\"firstName\"\n label={t(\"settings.userData.label.firstName\")}\n value={firstName || \"\"}\n disabled={false}\n valid={isValidName(firstName)}\n reference={firstNameRef}\n type=\"text\"\n setValue={(e) => {\n setFirstName(e)\n }}\n setFocus={() => {}}\n />\n <FormInput\n id=\"lastName\"\n label={t(\"settings.userData.label.lastName\")}\n value={lastName || \"\"}\n disabled={false}\n valid={isValidName(lastName)}\n reference={lastNameRef}\n type=\"text\"\n setValue={(e) => {\n setLastName(e)\n }}\n setFocus={() => {}}\n />\n <FormInput\n id=\"phone\"\n label={t(\"settings.userData.label.phone\")}\n value={phone || \"\"}\n disabled={false}\n valid={phone.length >= 10}\n reference={phoneRef}\n type=\"text\"\n setValue={(e) => {\n setPhone(e)\n }}\n setFocus={() => {}}\n />\n <div className=\"form-group\">\n <FormCheckBox\n label={t(\"settings.userData.label.marketingOptIn\")}\n checked={marketingOptIn ? true : false}\n callback={setMarketingOptIn}\n />\n </div>\n\n <div\n className={\n formChanged ? \"form-button-row right\" : \"form-button-row invisible\"\n }\n >\n <FormButton label={t(\"settings.userData.button.save\")} />\n </div>\n </form>\n )\n\n return (\n <section className=\"settings-userdata\">\n <Title title={t(\"settings.userData.title\")} />\n\n <div className=\"userdata\">\n <h2 className=\"settings-paragraph\">\n {t(\"settings.userData.subTitle\")}\n </h2>\n <p className=\"settings-paragraph\">{t(\"settings.userData.paragraph\")}</p>\n {formState == \"FORM\" ? (\n UserDataForm\n ) : formState == \"WAITING\" ? (\n <Waiting />\n ) : (\n <SubmitComplete />\n )}\n </div>\n </section>\n )\n}\n","import axios from \"./axios\"\n\nexport const dbRequestPasswordReset = async (email) => {\n const body = { email: email, domain: \"onetwo\" }\n try {\n const response = await axios.post(\"/v1/auth/send_reset_password_email\", body, {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n })\n return response.data\n } catch (err) {\n throw err\n }\n}\n\nexport const dbPasswordReset = async (oob, pwd) => {\n const body = { oobCode: oob, newPassword: pwd }\n try {\n const response = await axios.post(\"/v1/auth/reset_password\", body, {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n })\n return response.data\n } catch (err) {\n throw err\n }\n}\n\nexport const dbChangePassword = async (oldPassword, newPassword, token) => {\n const body = {\n oldPassword: oldPassword,\n newPassword: newPassword,\n }\n try {\n const response = await axios.post(\"/v1/auth/change_password\", body, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n })\n return\n } catch (err) {\n throw err\n }\n}\n","import React, { useState, useRef, useEffect } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport useAuth from \"../../hooks/useAuth\"\n\nimport { dbChangePassword } from \"../../api/passwords\"\n\nimport { Title } from \"../../component/Title\"\n\nimport { FormInput, FormButton, isValidPassword } from \"../FormElements\"\n\nexport const ChangePassword = () => {\n const { t } = useTranslation()\n const { auth } = useAuth()\n\n const [widgetState, setWidgetState] = useState(\"READY\")\n const [errorMessage, setErrorMessage] = useState(\"\")\n\n const oldPasswordRef = useRef(null)\n const newPasswordRef = useRef(null)\n const confirmNewPasswordRef = useRef(null)\n\n const [oldPassword, setOldPassword] = useState()\n const [newPassword, setNewPassword] = useState()\n const [confirmNewPassword, setConfirmNewPassword] = useState()\n\n const validateForm = () => {\n if (!isValidPassword(newPassword)) {\n setErrorMessage(t(\"settings.changePassword.error.INVALID_PASSWORD\"))\n return false\n } else if (newPassword != confirmNewPassword) {\n setErrorMessage(t(\"settings.changePassword.error.PASSWORD_MATCH\"))\n return false\n }\n return true\n }\n\n const resetFields = () => {\n setOldPassword()\n setNewPassword()\n setConfirmNewPassword()\n }\n\n useEffect(() => {\n if (errorMessage != \"\") setWidgetState(\"ERROR\")\n }, [errorMessage])\n\n useEffect(() => {\n if (widgetState != \"ERROR\") setErrorMessage(\"\")\n }, [widgetState])\n\n const changePassword = async (e) => {\n e.preventDefault()\n if (!validateForm()) return\n\n try {\n await dbChangePassword(oldPassword, newPassword, auth.accessToken)\n resetFields()\n setWidgetState(\"DONE\")\n } catch (err) {\n if (!err?.response) {\n setErrorMessage(t(\"settings.changePassword.error.NO_RESPONSE\"))\n } else if (\"error\" in err.response.data) {\n setErrorMessage(\n t(\"settings.changePassword.error.\" + err.response.data.error.message)\n )\n } else {\n setErrorMessage(t(\"settings.changePassword.error.UPDATE_ERROR\"))\n }\n }\n }\n\n const Error = () => {\n return (\n <div className=\"change-password-widget\">\n <p className=\"mb-2\">{errorMessage}</p>\n <div className=\"form-button-row\">\n <FormButton\n label={t(\"settings.changePassword.button.dismiss\")}\n callback={() => setWidgetState(\"READY\")}\n />\n </div>\n </div>\n )\n }\n\n const Done = () => {\n return (\n <div className=\"change-password-widget\">\n <p className=\"mb-2\">{t(\"settings.changePassword.success\")}</p>\n <div className=\"form-button-row\">\n <FormButton\n label={t(\"settings.changePassword.button.dismiss\")}\n callback={() => setWidgetState(\"READY\")}\n />\n </div>\n </div>\n )\n }\n\n const ChangePassWordForm = (\n <form onSubmit={changePassword}>\n <FormInput\n id=\"oldPassword\"\n label={t(\"settings.changePassword.label.oldPassword\")}\n value={oldPassword}\n disabled={false}\n valid={true}\n reference={oldPasswordRef}\n type=\"password\"\n setValue={(e) => {\n setOldPassword(e)\n }}\n setFocus={(f) => {}}\n />\n <FormInput\n id=\"newPassword\"\n label={t(\"settings.changePassword.label.newPassword\")}\n value={newPassword}\n disabled={false}\n valid={isValidPassword(newPassword)}\n reference={newPasswordRef}\n type=\"password\"\n setValue={(e) => {\n setNewPassword(e)\n }}\n setFocus={() => {}}\n />\n <FormInput\n id=\"confirmNewPassword\"\n label={t(\"settings.changePassword.label.confirmNewPassword\")}\n value={confirmNewPassword}\n disabled={false}\n valid={newPassword == confirmNewPassword}\n reference={confirmNewPasswordRef}\n type=\"password\"\n setValue={(e) => {\n setConfirmNewPassword(e)\n }}\n setFocus={() => {}}\n />\n <div className=\"form-button-row right\">\n <FormButton\n label={t(\"settings.changePassword.button.changePassword\")}\n />\n </div>\n </form>\n )\n\n return (\n <section className=\"settings-change-password\">\n <Title title={t(\"settings.changePassword.title\")} />\n <div className=\"change-password\">\n <h2 className=\"settings-paragraph\">\n {t(\"settings.changePassword.subTitle\")}\n </h2>\n <p className=\"settings-paragraph\">\n {t(\"settings.changePassword.paragraph\")}\n </p>\n {widgetState == \"READY\" ? (\n ChangePassWordForm\n ) : widgetState == \"ERROR\" ? (\n <Error />\n ) : (\n <Done />\n )}\n </div>\n </section>\n )\n}\n","import React, { useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport useAuth from \"../../hooks/useAuth\"\nimport useProfiles from \"../../hooks/useProfiles\"\nimport useLogout from \"../../hooks/useLogout\"\n\nimport { dbDeleteAccount } from \"../../api/account\"\nimport { dbDeleteProfile } from \"../../api/profiles\"\n\nimport { Title } from \"../../component/Title\"\nimport { Loading } from \"../Loading\"\nimport { FormButton } from \"../FormElements\"\n\nexport const DeleteAccount = () => {\n const { t } = useTranslation()\n const { profiles } = useProfiles()\n const { auth } = useAuth()\n\n const logout = useLogout()\n\n const [widgetState, setWidgetState] = useState(\"DELETE\")\n const [errorMessage, setErrorMessage] = useState(\"\")\n\n const deleteAccount = async () => {\n setWidgetState(\"WAITING\")\n try {\n auth.user.patientRelations.forEach(async (element) => {\n await dbDeleteProfile(element.patient_id, auth.accessToken)\n })\n await dbDeleteAccount(auth.user.id, auth.accessToken)\n await logout()\n } catch (err) {\n setWidgetState(\"ERROR\")\n if (!err?.response) {\n setErrorMessage(t(\"settings.deleteUser.error.NO_RESPONSE\"))\n } else if (\"error\" in err.response.data) {\n setErrorMessage(\n t(\"settings.deleteUser.error.\" + err.response.data.error.message)\n )\n } else {\n setErrorMessage(\"settings.deleteUser.error.DELETE_ERROR\")\n }\n }\n }\n\n const ConfirmDelete = () => {\n return (\n <div className=\"delete-account-widget\">\n <p className=\"mb-2\">{t(\"settings.deleteAccount.confirmation\")}</p>\n <ul>\n {profiles.map((profile, index) => (\n <li key={index}>{profile.firstName + \" \" + profile.lastName}</li>\n ))}\n </ul>\n <div className=\"delete-buttons\">\n <div className=\"delete-button\">\n <FormButton\n label={t(\"settings.deleteAccount.button.abort\")}\n callback={() => setWidgetState(\"DELETE\")}\n />\n </div>\n <div className=\"delete-button\">\n <FormButton\n label={t(\"settings.deleteAccount.button.confirm\")}\n callback={deleteAccount}\n buttonClass=\"btn--delete\"\n />\n </div>\n </div>\n </div>\n )\n }\n\n const Error = () => {\n return (\n <div className=\"delete-account-widget\">\n <p className=\"mb-2\">{errorMessage}</p>\n <div className=\"form-button-row\">\n <FormButton\n label={t(\"settings.deleteAccount.button.dismiss\")}\n callback={() => setWidgetState(\"DELETE\")}\n />\n </div>\n </div>\n )\n }\n\n const Waiting = () => {\n return (\n <div className=\"delete-account-widget\">\n <Loading color=\"white\" context=\"delete-account\" />\n </div>\n )\n }\n\n const DeleteAccountWidget = (\n <div className=\"delete-account-widget\">\n <FormButton\n label={t(\"settings.deleteAccount.button.delete\")}\n callback={() => setWidgetState(\"CONFIRM\")}\n buttonClass=\"btn--delete\"\n />\n </div>\n )\n\n return (\n <section className=\"settings-delete-account\">\n <Title title={t(\"settings.deleteAccount.title\")} />\n <div className=\"delete-account\">\n <h2 className=\"settings-paragraph\">\n {t(\"settings.deleteAccount.subTitle\")}\n </h2>\n <p className=\"settings-paragraph\">\n {t(\"settings.deleteAccount.paragraph\")}\n </p>\n\n <div className=\"account-delete\">\n {widgetState === \"DELETE\" ? (\n DeleteAccountWidget\n ) : widgetState === \"CONFIRM\" ? (\n <ConfirmDelete />\n ) : widgetState === \"ERROR\" ? (\n <Error />\n ) : (\n <Waiting />\n )}\n </div>\n </div>\n </section>\n )\n}\n\nexport default DeleteAccount\n","import React from \"react\"\nimport Navbar from \"../component/Navbar\"\nimport Footer from \"../component/Footer\"\nimport { Terms } from \"../component/settings/Terms\"\nimport { UserData } from \"../component/settings/UserData\"\nimport { ChangePassword } from \"../component/settings/ChangePassword\"\nimport DeleteAccount from \"../component/settings/DeleteAccount\"\n\nfunction Settings() {\n return (\n <section id=\"settings\" className=\"settings\">\n <Navbar />\n <div className=\"settings-container\">\n <UserData />\n <ChangePassword />\n <Terms />\n <DeleteAccount />\n </div>\n <Footer />\n </section>\n )\n}\n\nexport default Settings\n","import { t } from \"i18next\"\nimport React from \"react\"\nimport Navbar from \"../component/Navbar\"\nimport { Button } from \"../component/Button\"\nimport \"./Page.css\"\n\nfunction Missing() {\n return (\n <>\n <Navbar />\n <section id=\"missing\" className=\"missing\">\n <h1 className=\"mb-3\">{t(\"missing.title\")}</h1>\n <Button buttonStyle=\"btn--form\" buttonSize=\"btn--large\" linkTo=\"/\">\n {t(\"missing.button.return\")}\n </Button>\n </section>\n </>\n )\n}\n\nexport default Missing\n","import axios from \"../api/axios\"\nimport useAuth from \"./useAuth\"\nimport useProfiles from \"./useProfiles\"\nimport getProfiles from \"../api/profiles\"\n\nconst LOGIN_URL = \"/v1/auth/login\"\n\nconst useLogin = () => {\n const { setAuth } = useAuth()\n const { setProfiles } = useProfiles()\n\n const login = async (email, password) => {\n console.log(\"Logging in user \" + email)\n\n const response = await axios.post(\n LOGIN_URL,\n JSON.stringify({ email: email, password: password }),\n {\n headers: { \"Content-Type\": \"application/json\" },\n withCredentials: true,\n }\n )\n let roles = [\"USER\"]\n if (response?.data?.user.isSuperUser) {\n roles.push(\"ADMIN\")\n }\n\n console.log(\n \"User: \" + response?.data?.user.email + \" \" + roles + \" logged in\"\n )\n\n localStorage.setItem(\"loggedIn\", JSON.stringify(true))\n setAuth({\n user: response?.data?.user,\n roles,\n accessToken: response?.data?.auth.token,\n })\n const profiles = await getProfiles(response?.data?.auth.token)\n setProfiles(profiles)\n }\n return login\n}\n\nexport default useLogin\n","import React, { useRef, useState, useEffect } from \"react\"\nimport { useNavigate, useLocation, useSearchParams } from \"react-router-dom\"\nimport { useTranslation } from \"react-i18next\"\n\nimport useLogin from \"../hooks/useLogin\"\nimport { dbRequestPasswordReset, dbPasswordReset } from \"../api/passwords\"\n\nimport { Button } from \"./Button\"\nimport { Loading } from \"./Loading\"\n\nimport { FormInput, FormButton, isValidPassword } from \"./FormElements\"\n\nimport \"./SignInForm.css\"\n\nfunction SignInForm() {\n /* The sign in form can be in any of the following states:\n\n SIGN_IN\n SIGN_IN_WAITING\n SIGN_IN_ERROR\n \n REQUEST_PASSWORD_RESET\n REQUEST_PASSWORD_RESET_WAITING\n REQUEST_PASSWORD_RESET_ERROR\n REQUEST_PASSWORD_RESET_DONE\n \n PASSWORD_RESET\n PASSWORD_RESET_WAITING\n PASSWORD_RESET_ERROR\n PASSWORD_RESET_DONE\n */\n\n const { t } = useTranslation()\n\n const navigate = useNavigate()\n const location = useLocation()\n const from = location.state?.from?.pathname || \"/home\"\n\n const [searchParams, setSearchParams] = useSearchParams()\n\n const emailRef = useRef()\n const passwordRef = useRef()\n\n // If query parameter oob exists, initial state is password reset\n const [formState, setFormState] = useState(\n searchParams.get(\"oob\") ? \"PASSWORD_RESET\" : \"SIGN_IN\"\n )\n const [isLoading, setLoading] = useState(false)\n\n const [headline, setHeadline] = useState()\n const [description, setDescription] = useState()\n const [errorDescription, setErrorDescription] = useState(\"\")\n\n const [email, setEmail] = useState()\n const [password, setPassword] = useState()\n\n const login = useLogin()\n\n useEffect(() => {\n if (searchParams.get(\"oob\")) setFormState(\"PASSWORD_RESET\")\n }, [searchParams])\n\n useEffect(() => {\n setErrorDescription(\"\")\n }, [email, password])\n\n useEffect(() => {\n /* Update widget headline and description on state change */\n setHeadline(t(\"signIn.headline.\" + formState))\n setDescription(\n formState.includes(\"ERROR\")\n ? errorDescription\n : t(\"signIn.description.\" + formState)\n )\n }, [formState])\n\n const handleSubmit = async (e) => {\n e.preventDefault()\n setFormState(\"SIGN_IN_WAITING\")\n setLoading(true)\n try {\n await login(email, password)\n setEmail(\"\")\n setPassword(\"\")\n setFormState(\"SIGN_IN\")\n navigate(from, { replace: true })\n } catch (err) {\n setLoading(false)\n setFormState(\"SIGN_IN_ERROR\")\n if (!err?.response) {\n setLoading(false)\n setErrorDescription(t(\"signIn.submit.error.NO_RESPONSE\"))\n } else if (\"error\" in err.response.data) {\n setLoading(false)\n console.log(err.response.data.error.message)\n setErrorDescription(\n t(\"signIn.submit.error.\" + err.response.data.error.message)\n )\n } else {\n setLoading(false)\n setErrorDescription(t(\"signIn.submit.error.SIGN_IN_ERROR\"))\n }\n }\n setLoading(false)\n }\n\n const handleRequestPasswordReset = async (e) => {\n e.preventDefault()\n setFormState(\"REQUEST_PASSWORD_RESET_WAITING\")\n setLoading(true)\n try {\n await dbRequestPasswordReset(email)\n setFormState(\"REQUEST_PASSWORD_RESET_DONE\")\n } catch (err) {\n setFormState(\"REQUEST_PASSWORD_RESET_ERROR\")\n if (!err?.response) {\n setErrorDescription(t(\"signIn.submit.error.NO_RESPONSE\"))\n } else if (\"error\" in err.response.data) {\n setErrorDescription(\n t(\"signIn.submit.error.\" + err.response.data.error.message)\n )\n } else {\n setErrorDescription(\n t(\"signIn.submit.error.REQUEST_PASSWORD_RESET_ERROR\")\n )\n }\n }\n setLoading(false)\n }\n\n const handlePasswordReset = async (e) => {\n e.preventDefault()\n if (!isValidPassword(password)) {\n setFormState(\"PASSWORD_RESET_ERROR\")\n setErrorDescription(t(\"signIn.submit.error.INVALID_PASSWORD\"))\n return\n }\n setFormState(\"PASSWORD_RESET_WAITING\")\n setLoading(true)\n try {\n await dbPasswordReset(searchParams.get(\"oob\"), password)\n setSearchParams()\n setPassword(\"\")\n setFormState(\"SIGN_IN\")\n } catch (err) {\n setFormState(\"PASSWORD_RESET_ERROR\")\n if (!err?.response) {\n setErrorDescription(t(\"signIn.submit.error.NO_RESPONSE\"))\n } else if (\"error\" in err.response.data) {\n setErrorDescription(\n t(\"signIn.submit.error.\" + err.response.data.error.message)\n )\n } else {\n setErrorDescription(t(\"signIn.submit.error.PASSWORD_RESET_ERROR\"))\n }\n }\n setLoading(false)\n }\n\n const ResetRequestComplete = () => {\n return (\n <div className=\"widget-done\">\n <p className=\"form-group\">{description}</p>\n <Button\n buttonStyle=\"btn--form\"\n buttonSize=\"btn--small\"\n onClick={() => {\n setFormState(\"SIGN_IN\")\n }}\n >\n {t(\"signIn.button.close\")}\n </Button>\n </div>\n )\n }\n\n const Waiting = () => {\n return (\n <div className=\"widget-waiting\">\n <p className=\"form-group\">{description}</p>\n </div>\n )\n }\n\n const Error = () => {\n return (\n <div className=\"widget-error\">\n <p className=\"form-group\">{description}</p>\n <FormButton\n label={t(\"signIn.button.close\")}\n callback={() => {\n if (formState === \"PASSWORD_RESET_ERROR\") {\n setLoading(false)\n setFormState(\"PASSWORD_RESET\")\n } else {\n setLoading(false)\n setFormState(\"SIGN_IN\")\n }\n }}\n />\n </div>\n )\n }\n\n const SignInForm = (\n <form onSubmit={handleSubmit}>\n <p className=\"form-group\">{description}</p>\n <FormInput\n id=\"email\"\n label={t(\"signIn.label.email\")}\n value={email}\n reference={emailRef}\n autoComplete=\"on\"\n type=\"email\"\n setValue={setEmail}\n />\n <FormInput\n id=\"password\"\n label={t(\"signIn.label.password\")}\n value={password}\n reference={passwordRef}\n autoComplete=\"on\"\n type=\"password\"\n setValue={setPassword}\n />\n <div className=\"form-button-row right forgot-password\">\n <a\n onClick={() => {\n setFormState(\"REQUEST_PASSWORD_RESET\")\n }}\n >\n {t(\"signIn.forgotPassword\")}\n </a>\n </div>\n <div className=\"form-button-row center\">\n <FormButton label={t(\"signIn.button.submit\")} />\n </div>\n </form>\n )\n\n const RequestPasswordReset = (\n <form onSubmit={handleRequestPasswordReset}>\n <p className=\"form-group\">{description}</p>\n <FormInput\n id=\"email\"\n label={t(\"signIn.label.email\")}\n value={email}\n reference={emailRef}\n type=\"email\"\n setValue={setEmail}\n />\n <div className=\"form-button-row center mt-2\">\n <FormButton\n label={t(\"signIn.button.close\")}\n callback={() => {\n setFormState(\"SIGN_IN\")\n }}\n />\n <FormButton label={t(\"signIn.button.reset\")} />\n </div>\n </form>\n )\n\n const PasswordReset = (\n <form onSubmit={handlePasswordReset}>\n <p className=\"form-group\">{description}</p>\n <FormInput\n id=\"password\"\n label={t(\"signIn.label.password\")}\n value={password}\n valid={isValidPassword(password)}\n reference={passwordRef}\n type=\"password\"\n setValue={setPassword}\n />\n\n <div className=\"form-button-row center mt-2\">\n <FormButton\n label={t(\"signIn.button.close\")}\n callback={() => {\n setSearchParams()\n setPassword()\n setFormState(\"SIGN_IN\")\n }}\n />\n <FormButton label={t(\"signIn.button.setPassword\")} />\n </div>\n </form>\n )\n\n return (\n <div className=\"sign-in-card\">\n <h2>{headline}</h2>\n <div className=\"sign-in-container\">\n <div className={isLoading ? \"not-hidden\" : \"hidden\"}>\n <Loading color=\"weak-white\" context=\"login\" />\n </div>\n {formState === \"SIGN_IN\" ? (\n SignInForm\n ) : formState.includes(\"WAIT\") ? (\n <Waiting />\n ) : formState === \"REQUEST_PASSWORD_RESET\" ? (\n RequestPasswordReset\n ) : formState === \"REQUEST_PASSWORD_RESET_DONE\" ? (\n <ResetRequestComplete />\n ) : formState === \"PASSWORD_RESET\" ? (\n PasswordReset\n ) : (\n <Error />\n )}\n </div>\n </div>\n )\n}\n\nexport default SignInForm\n","import React from \"react\"\nimport Navbar from \"../component/Navbar\"\nimport SignInForm from \"../component/SignInForm\"\nimport {assets} from \"../assets/Assets\"\nimport {OneTwoLink} from \"../component/OneTwoLink\"\nimport \"./Page.css\"\n\n\n\nfunction SignIn() {\n return (\n <>\n <Navbar />\n <section id=\"signin\" className=\"signin\">\n <div className=\"signin-container\">\n <div className=\"signin-container-form\">\n <SignInForm />\n </div>\n <div className=\"link-container\">\n <OneTwoLink link=\"https://www.onetwo-analytics.com/\" text=\"OneTwo Analytics\" image={assets.onetwo_analytics_logo}/>\n </div>\n </div>\n </section>\n </>\n )\n}\n\nexport default SignIn\n","import axios from \"../api/axios\"\nimport getProfiles from \"../api/profiles\"\nimport useAuth from \"./useAuth\"\nimport useProfiles from \"./useProfiles\"\n\nconst useRefreshToken = () => {\n const { setAuth } = useAuth()\n const { setProfiles } = useProfiles()\n\n const refresh = async () => {\n const response = await axios.get(\"/v1/auth/refresh\", {\n withCredentials: true,\n })\n setAuth((prev) => {\n let roles = [\"USER\"]\n if (response.data.user.isSuperUser) {\n roles.push(\"ADMIN\")\n }\n\n return {\n ...prev,\n user: response.data.user,\n roles: roles,\n accessToken: response.data.auth.token,\n }\n })\n const profiles = await getProfiles(response?.data?.auth.token)\n setProfiles(profiles)\n return response.data.auth.token\n }\n\n return refresh\n}\n\nexport default useRefreshToken\n","import React from \"react\"\nimport { Loading } from \"../component/Loading\"\nimport \"./Page.css\"\n\nfunction LoadingPage() {\n return (\n <div className=\"loading-page\">\n <Loading color=\"onetwo--primary\" />\n </div>\n )\n}\n\nexport default LoadingPage\n","import { Outlet } from \"react-router-dom\"\nimport { useState, useEffect } from \"react\"\nimport useRefreshToken from \"../hooks/useRefreshToken\"\nimport useAuth from \"../hooks/useAuth\"\nimport LoadingPage from \"../page/LoadingPage\"\n\n\nconst PersistLogin = () => {\n const [isLoading, setIsLoading] = useState(true)\n const refresh = useRefreshToken()\n const { auth } = useAuth()\n\n useEffect(() => {\n const verifyRefreshToken = async () => {\n try {\n // console.log(\"refrsh\");\n await refresh()\n localStorage.setItem(\"loggedIn\", JSON.stringify(true))\n // await new Promise(r => setTimeout(r, 2000));\n } catch (err) {\n localStorage.setItem(\"loggedIn\", JSON.stringify(false))\n console.log(\"No previous session found.\")\n } finally {\n setIsLoading(false)\n }\n }\n // console.log(\"Persisence login check: \" + JSON.parse(localStorage.getItem(\"loggedIn\")));\n // console.log(\"part two\" + !auth?.accessToken);\n // If no accessToken found in auth and loggedIn status from local storage is true, get a new auth token.\n !auth?.accessToken && JSON.parse(localStorage.getItem(\"loggedIn\"))\n ? verifyRefreshToken()\n : setIsLoading(false)\n }, [])\n\n return (\n <>\n {isLoading ? (\n <LoadingPage />\n ) : (\n <Outlet />\n )}\n </>\n )\n}\n\nexport default PersistLogin\n","import React from \"react\"\nimport { t } from \"i18next\"\nimport Navbar from \"../component/Navbar\"\nimport { Button } from \"../component/Button\"\nimport \"./Page.css\"\n\nfunction Unauthorized() {\n return (\n <>\n <Navbar />\n <section id=\"unauthorized\" className=\"unauthorized\">\n <h1 className=\"mb-3\">{t(\"unauthorized.title\")}</h1>\n <Button buttonStyle=\"btn--form\" buttonSize=\"btn--large\" linkTo=\"/\">\n {t(\"unauthorized.button.return\")}\n </Button>\n </section>\n </>\n )\n}\n\nexport default Unauthorized\n","import React, { useEffect, useState } from \"react\"\nimport { useSearchParams } from \"react-router-dom\"\n\nimport useAuth from \"../hooks/useAuth\"\nimport useProfiles from \"../hooks/useProfiles\"\nimport getProfiles from \"../api/profiles\"\n\nimport { useTranslation } from \"react-i18next\"\n\nimport Navbar from \"../component/Navbar\"\nimport { Button } from \"../component/Button\"\n\nimport \"./Page.css\"\n\nfunction Dexcom() {\n // const { auth } = useAuth()\n const { t } = useTranslation()\n // const { profiles, setProfiles } = useProfiles()\n\n const [searchParams] = useSearchParams()\n let profileId = searchParams.get(\"profileId\")\n let status = searchParams.get(\"status\")\n\n // async function refreshProfile() {\n // const response = await getProfiles(auth.accessToken)\n // setProfiles(response)\n // }\n\n // useEffect(() => {\n // if (status === \"ok\") {\n // refreshProfile()\n // }\n // })\n return (\n <>\n <Navbar />\n <section id=\"dexcom\" className=\"dexcom\">\n <h1 className=\"mb-3\">\n {status === \"ok\" ? t(\"dexcom.success\") : t(\"dexcom.notsuccess\")}\n </h1>\n <Button\n buttonStyle=\"btn--primary\"\n buttonSize=\"btn--large\"\n onClick={() => {\n window.close()\n }}\n >\n {t(\"dexcom.close\")}\n </Button>\n </section>\n </>\n )\n}\n\nexport default Dexcom\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\n\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\n\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n\n return Promise.resolve(maybePromise);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { defaults, hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\n\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n }\n}\n\nvar XmlHttpRequestApi;\n\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\n\nvar ActiveXObjectApi;\n\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\n\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\n\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n};\n\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n var headers = defaults({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (payload) headers['Content-Type'] = 'application/json';\n fetchApi(url, defaults({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions)).then(function (response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n }).catch(callback);\n};\n\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(payload ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n x.withCredentials = !!options.withCredentials;\n\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\n\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n\n callback = callback || function () {};\n\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n};\n\nexport default request;","function _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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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\nimport { defaults, makePromise } from './utils.js';\nimport request from './request.js';\n\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\n\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, Backend);\n\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n\n this.options.request(this.options, url, undefined, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n\n if (finished === languages.length) {\n if (callback) callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\nexport default Backend;","import i18n from \"i18next\"\nimport { initReactI18next } from \"react-i18next\"\n\nimport Backend from \"i18next-http-backend\"\n// import LanguageDetector from \"i18next-browser-languagedetector\"\n// don't want to use this?\n// have a look at the Quick start guide\n// for passing in lng and translations on init\n\ni18n\n // load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\n // learn more: https://github.com/i18next/i18next-http-backend\n // want your translations to be loaded from a professional CDN? => https://github.com/locize/react-tutorial#step-2---use-the-locize-cdn\n .use(Backend)\n // detect user language\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n // .use(LanguageDetector)\n // pass the i18n instance to react-i18next.\n .use(initReactI18next)\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"en\",\n debug: false,\n\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n },\n })\n\nexport default i18n\n","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n *\n * > 👉 **Note**: you should use markdown.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // To do: next major: expose `undefined` everywhere instead of `null`.\n constructor(reason, place, origin) {\n /** @type {[string | null, string | null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // To do: next major: deep clone.\n // @ts-expect-error: looks like a position.\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n // To do: next major: deep clone.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // To do: next major: deep clone.\n position.start = place\n }\n }\n\n // Fields from `Error`.\n /**\n * Serialized positional info of error.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(place) || '1:1'\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = typeof reason === 'object' ? reason.message : reason\n\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack = ''\n\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack\n }\n\n /**\n * Reason for message.\n *\n * > 👉 **Note**: you should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /* eslint-disable no-unused-expressions */\n /**\n * State of problem.\n *\n * * `true` — marks associated file as no longer processable (error)\n * * `false` — necessitates a (potential) change (warning)\n * * `null | undefined` — for things that might not need changing (info)\n *\n * @type {boolean | null | undefined}\n */\n this.fatal\n\n /**\n * Starting line of error.\n *\n * @type {number | null}\n */\n this.line = position.start.line\n\n /**\n * Starting column of error.\n *\n * @type {number | null}\n */\n this.column = position.start.column\n\n /**\n * Full unist position.\n *\n * @type {Position | null}\n */\n this.position = position\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | null}\n */\n this.source = parts[0]\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | null}\n */\n this.ruleId = parts[1]\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | null}\n */\n this.file\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | null}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | null}\n */\n this.expected\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | null}\n */\n this.url\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | null}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileUrlOrPath) {\n return (\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.href &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.origin\n )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string | URL} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n *\n * This is a copy of the types from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Options | URL | Value | VFile} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {Value | null | undefined} [value]\n * Set `value`.\n * @property {string | null | undefined} [cwd]\n * Set `cwd`.\n * @property {Array<string> | null | undefined} [history]\n * Set `history`.\n * @property {URL | string | null | undefined} [path]\n * Set `path`.\n * @property {string | null | undefined} [basename]\n * Set `basename`.\n * @property {string | null | undefined} [stem]\n * Set `stem`.\n * @property {string | null | undefined} [extname]\n * Set `extname`.\n * @property {string | null | undefined} [dirname]\n * Set `dirname`.\n * @property {Data | null | undefined} [data]\n * Set `data`.\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n * An array of URLs to the original source files.\n * @property {Array<string>} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array<VFile>} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Buffer` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {string | URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Buffer`\n * (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding || undefined)\n }\n\n /**\n * Create a warning message associated with the file.\n *\n * Its `fatal` is set to `false` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Create an info message associated with the file.\n *\n * Its `fatal` is set to `null` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Create a fatal error associated with the file.\n *\n * Its `fatal` is set to `true` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Message.\n * @throws {VFileMessage}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {void}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Buffer}\n * Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n return bufferLike(value)\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback\n * @typedef {(...input: Array<any>) => any} Middleware\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record<string, unknown>} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record<string, unknown>|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport {splice} from 'micromark-util-chunked'\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array<Event>} */\n let parameters\n /** @type {Array<Event>} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array<number>} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record<string, number>} */\n const gaps = {}\n /** @type {Array<Chunk>} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n const columnStart = {}\n /** @type {Array<Construct>} */\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n let chunks = []\n /** @type {Array<Token>} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array<Event>} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array<Event>} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code> | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n *\n * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Node | Fragment>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array<number>} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array<StaticPhrasingContent>} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Extension | Array<Extension>>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<Ancestor>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor<Node>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,\n * Extract<Descendant, Parent>\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record<string, Definition>} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Reference>} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * <https://github.com/micromark/micromark-extension-footnote>\n// * <https://github.com/syntax-tree/mdast-util-footnote>\n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Footnote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnote(state, node) {\n const footnoteById = state.footnoteById\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(state, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Raw | Element | null}\n * hast node.\n */\nexport function html(state, node) {\n if (state.dangerous) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function imageReference(state, node) {\n const def = state.definition(node.identifier)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function linkReference(state, node) {\n const def = state.definition(node.identifier)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastRoot | HastElement}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start.line && end.line) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(node, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastText | HastElement}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract<MdastNodes, MdastParent>} MdastParents\n *\n * @typedef EmbeddedHastFields\n * hast fields.\n * @property {string | null | undefined} [hName]\n * Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n * Generate an element with these properties instead.\n * @property {Array<HastElementContent> | null | undefined} [hChildren]\n * Generate an element with this content instead.\n *\n * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData\n * mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n * mdast node with embedded hast data.\n *\n * @typedef PointLike\n * Point-like value.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @typedef PositionLike\n * Position-like value.\n * @property {PointLike | null | undefined} [start]\n * Point-like value.\n * @property {PointLike | null | undefined} [end]\n * Point-like value.\n *\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * hast node.\n *\n * @callback HFunctionProps\n * Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {HastProperties} props\n * Properties.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @callback HFunctionNoProps\n * Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @typedef HFields\n * Info on `state`.\n * @property {boolean} dangerous\n * Whether HTML is allowed.\n * @property {string} clobberPrefix\n * Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n * Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n * HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n * Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n * Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n * Definition cache.\n * @property {Record<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Record<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {Handler} unknownHandler\n * Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one\n * Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n * Like `state` but lower-level and usable on non-elements.\n * Deprecated: use `patch` and `applyData`.\n * @property {Array<string>} passThrough\n * List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute on footnotes to prevent it from\n * *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call (affects\n * screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (note that `id: 'footnote-label'`\n * is always added as footnote calls use it with `aria-describedby` to\n * provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes.\n * @property {Array<string> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record<string, Handler>} Handlers\n * Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n * Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Record<string, MdastFootnoteDefinition>} */\n const footnoteById = {}\n\n // To do: next major: add `options` to state, remove:\n // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n // `unknownHandler`.\n\n // To do: next major: move to `state.options.allowDangerousHtml`.\n state.dangerous = dangerous\n // To do: next major: move to `state.options`.\n state.clobberPrefix =\n settings.clobberPrefix === undefined || settings.clobberPrefix === null\n ? 'user-content-'\n : settings.clobberPrefix\n // To do: next major: move to `state.options`.\n state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n // To do: next major: move to `state.options`.\n state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n // To do: next major: move to `state.options`.\n state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n className: ['sr-only']\n }\n // To do: next major: move to `state.options`.\n state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n // To do: next major: move to `state.options`.\n state.unknownHandler = settings.unknownHandler\n // To do: next major: move to `state.options`.\n state.passThrough = settings.passThrough\n\n state.handlers = {...handlers, ...settings.handlers}\n\n // To do: next major: replace utility with `definitionById` object, so we\n // only walk once (as we need footnotes too).\n state.definition = definitions(tree)\n state.footnoteById = footnoteById\n /** @type {Array<string>} */\n state.footnoteOrder = []\n /** @type {Record<string, number>} */\n state.footnoteCounts = {}\n\n state.patch = patch\n state.applyData = applyData\n state.one = oneBound\n state.all = allBound\n state.wrap = wrap\n // To do: next major: remove `augment`.\n state.augment = augment\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, it’s fine!\n return state\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n *\n * @param {MdastNodeWithData | PositionLike | null | undefined} left\n * @param {HastElementContent} right\n * @returns {HastElementContent}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {MdastData} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n // @ts-expect-error: fine.\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n /* c8 ignore stop */\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function state(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n /* c8 ignore stop */\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n function oneBound(node, parent) {\n // @ts-expect-error: that’s a state :)\n return one(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function allBound(parent) {\n // @ts-expect-error: that’s a state :)\n return all(state, parent)\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {void}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {Type | HastElement}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {Type | HastElement} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent is likely to keep the content around (otherwise: pass\n // `hChildren`).\n else {\n result = {\n type: 'element',\n tagName: hName,\n properties: {},\n children: []\n }\n\n // To do: next major: take the children from the `root`, or inject the\n // raw/text/comment or so into the element?\n // if ('children' in node) {\n // // @ts-expect-error: assume `children` are allowed in elements.\n // result.children = node.children\n // } else {\n // // @ts-expect-error: assume `node` is allowed in elements.\n // result.children.push(node)\n // }\n }\n }\n\n if (result.type === 'element' && hProperties) {\n result.properties = {...result.properties, ...hProperties}\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n // @ts-expect-error: assume valid children are defined.\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n const type = node && node.type\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(state.handlers, type)) {\n return state.handlers[type](state, node, parent)\n }\n\n if (state.passThrough && state.passThrough.includes(type)) {\n // To do: next major: deep clone.\n // @ts-expect-error: types of passed through nodes are expected to be added manually.\n return 'children' in node ? {...node, children: all(state, node)} : node\n }\n\n if (state.unknownHandler) {\n return state.unknownHandler(state, node, parent)\n }\n\n return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = one(state, nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastText | HastElement}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastText | HastElement} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: all(state, node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n * Whether to add line endings at start and end.\n * @returns {Array<Type | HastText>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<Type | HastText>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n * Node to check.\n * @returns {boolean}\n * Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array<ElementContent>} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array<string>} [allowedElements]\n * @property {Array<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n\n return undefined\n })\n }\n }\n}\n","/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {unknown} thing\n * Thing to check (typically `Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`).\n * If a node is passed it must be a `Text` node, whose `value` field is\n * checked.\n */\nexport function whitespace(thing) {\n /** @type {string} */\n const value =\n // @ts-expect-error looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text'\n ? // @ts-expect-error looks like a text.\n thing.value || ''\n : thing\n\n // HTML whitespace expression.\n // See <https://infra.spec.whatwg.org/#ascii-whitespace>.\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let prop = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","import StyleToObject from './index.js';\n\nexport default StyleToObject;\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType<T>} ComponentType<T>\n */\n\n/**\n * @template {import('react').ElementType} T\n * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps\n * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType<CodeProps>} CodeComponent\n * @typedef {ComponentType<HeadingProps>} HeadingComponent\n * @typedef {ComponentType<LiProps>} LiComponent\n * @typedef {ComponentType<OrderedListProps>} OrderedListComponent\n * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent\n * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent\n * @typedef {ComponentType<TableRowProps>} TableRowComponent\n * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableDataCellComponent|ReactMarkdownNames} td\n * @property {TableHeaderCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {uriTransformer} from './uri-transformer.js'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array<ReactNode>} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: <https://github.com/facebook/react/pull/7081>.\n // See: <https://github.com/facebook/react/pull/7515>.\n // See: <https://github.com/remarkjs/remark-react/issues/64>.\n // See: <https://github.com/remarkjs/react-markdown/issues/576>.\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n !whitespace(child)\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const transform =\n options.transformLinkUri === undefined\n ? uriTransformer\n : options.transformLinkUri\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Record<string, unknown>} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = index\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && transform) {\n properties.href = transform(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Record<string, string>} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map(String)\n .join('')\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record<string, Deprecation>} */\nconst deprecated = {\n plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n .use(options.remarkPlugins || [])\n .use(remarkRehype, {\n ...options.remarkRehypeOptions,\n allowDangerousHtml: true\n })\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nconst unicodePunctuationInternal = regexCheck(/\\p{P}/u)\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function unicodePunctuation(code) {\n return asciiPunctuation(code) || unicodePunctuationInternal(code)\n}\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array<UnistParent>} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record<string, unknown>} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly<ActionTuple>} */\n let result = empty\n /** @type {Readonly<ActionTuple>} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<UnistParent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array<Parents>, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array<string>`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array<PhrasingContent> | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array<Node>`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array<Pair>} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {import('unist-util-visit-parents').BuildVisitor<Root, 'text'>} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array<Nodes> | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array<Parents>} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array<Nodes>} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array<PhrasingContent>} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array<ConstructName>} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct,\n notInConstruct\n }\n ]\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'link')\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array<PhrasingContent> | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteDefinition')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteReference')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteReference')\n const subexit = state.enter('reference')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\nfunction footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteDefinition')\n const subexit = state.enter('label')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n state.indentLines(state.containerFlow(node, tracker.current()), map)\n )\n exit()\n\n return value\n}\n\n/** @type {Map} */\nfunction map(line, index, blank) {\n if (index === 0) {\n return line\n }\n\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: <https://github.com/syntax-tree/mdast-util-to-markdown/blob/8ce8dbf/lib/unsafe.js#L14>\n *\n * @type {Array<ConstructName>}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info)\n const exit = state.enter('strikethrough')\n let value = tracker.move('~~')\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|ReadonlyArray<string|null|undefined>} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray<ReadonlyArray<string|null|undefined>>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array<number>} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array<Array<string>>} Cells per row. */\n const cellMatrix = []\n /** @type {Array<Array<number>>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array<number>} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array<string>} */\n const row = []\n /** @type {Array<number>} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array<string>} */\n const row = []\n /** @type {Array<number>} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array<string>} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array<string>} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').ConstructName} ConstructName\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['quote'], null | undefined>}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\n\nemphasis.peek = emphasisPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['emphasis'], null | undefined>}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array<UnistParent>} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record<string, unknown>} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly<ActionTuple>} */\n let result = empty\n /** @type {Readonly<ActionTuple>} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<UnistParent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches<Descendant, Check>,\n * Extract<Descendant, UnistParent>\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array<UnistParent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('mdast').Html} Html\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').State} State\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Exit} Exit\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['rule'], null | undefined>}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n /** @type {(node?: unknown) => node is PhrasingContent} */\n (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n 'link',\n 'linkReference',\n 'strong',\n 'text'\n ])\n )\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkStrong} from '../util/check-strong.js'\n\nstrong.peek = strongPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['strong'], null | undefined>}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['fence'], null | undefined>}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value =\n '&#x' +\n value.charCodeAt(0).toString(16).toUpperCase() +\n ';' +\n value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bulletOrdered'], null | undefined>}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['listItemIndent'], null | undefined>}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return fn.call(state, node, info)\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['ruleRepetition'], null | undefined>}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n const align = token._align\n assert(align, 'expected `_align` on table')\n this.enter(\n {\n type: 'table',\n align: align.map(function (d) {\n return d === 'none' ? null : d\n }),\n children: []\n },\n token\n )\n this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'inlineCode')\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, state, info) {\n const exit = state.enter('tableCell')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array<Array<string>>} matrix\n * @param {Array<string | null | undefined> | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array<Array<string>>} */\n const result = []\n const subexit = state.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableRowAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array<string>} */\n const result = []\n const subexit = state.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, state) {\n let value = defaultHandlers.inlineCode(node, parent, state)\n\n if (state.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2]\n assert(node.type === 'listItem')\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'paragraph')\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = state.createTracker(info)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = defaultHandlers.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {undefined}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nconst unicodePunctuationInternal = regexCheck(/\\p{P}/u)\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function unicodePunctuation(code) {\n return asciiPunctuation(code) || unicodePunctuationInternal(code)\n}\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiControl,\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n}\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n}\nconst path = {\n tokenize: tokenizePath,\n partial: true\n}\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n}\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n}\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n}\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n}\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n}\n\n/** @type {ConstructRecord} */\nconst text = {}\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {\n text\n }\n}\n\n/** @type {Code} */\nlet code = 48\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n if (code === 58) code = 65\n else if (code === 91) code = 97\n}\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, protocolAutolink]\ntext[104] = [emailAutolink, protocolAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean | undefined} */\n let dot\n /** @type {boolean} */\n let data\n return start\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n if (code === 64) {\n effects.consume(code)\n return emailDomain\n }\n return nok(code)\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L318>\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code)\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true\n effects.consume(code)\n return emailDomain\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code)\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code)\n dot = true\n return emailDomain\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L332>.\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n return wwwStart\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (\n (code !== 87 && code !== 119) ||\n !previousWww.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code)\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this\n let buffer = ''\n let seen = false\n return protocolStart\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if (\n (code === 72 || code === 104) &&\n previousProtocol.call(self, self.previous) &&\n !previousUnbalanced(self.events)\n ) {\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n return nok(code)\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase()\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code)\n return protocolSlashesInside\n }\n }\n return nok(code)\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code)\n if (seen) {\n return afterProtocol\n }\n seen = true\n return protocolSlashesInside\n }\n return nok(code)\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null ||\n asciiControl(code) ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code)\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0\n return wwwPrefixInside\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++\n effects.consume(code)\n return wwwPrefixInside\n }\n if (code === 46 && size === 3) {\n effects.consume(code)\n return wwwPrefixAfter\n }\n return nok(code)\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code)\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment\n /** @type {boolean | undefined} */\n let seen\n return domainInside\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code)\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L12>.\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 && unicodePunctuation(code))\n ) {\n return domainAfter(code)\n }\n seen = true\n effects.consume(code)\n return domainInside\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment\n underscoreInLastSegment = undefined\n }\n effects.consume(code)\n return domainInside\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // <https://github.com/github/cmark-gfm/issues/279>\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code)\n }\n return ok(code)\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0\n let sizeClose = 0\n return pathInside\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++\n effects.consume(code)\n return pathInside\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code)\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (\n code === 33 ||\n code === 34 ||\n code === 38 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 60 ||\n code === 63 ||\n code === 93 ||\n code === 95 ||\n code === 126\n ) {\n return effects.check(trail, ok, pathAtPunctuation)(code)\n }\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n effects.consume(code)\n return pathInside\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++\n }\n effects.consume(code)\n return pathInside\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (\n code === 33 ||\n code === 34 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 63 ||\n code === 95 ||\n code === 126\n ) {\n effects.consume(code)\n return trail\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code)\n return trailCharRefStart\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // <https://github.com/github/cmark-gfm/issues/278>.\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code)\n return trailBracketAfter\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of <https://github.com/github/cmark-gfm/issues/278> for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (\n code === null ||\n code === 40 ||\n code === 91 ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n return trail(code)\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharRefInside(code) : nok(code)\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code)\n return trail\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return trailCharRefInside\n }\n\n // It’s not a trail.\n return nok(code)\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code)\n return after\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code)\n }\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L156>.\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return (\n code === null ||\n code === 40 ||\n code === 42 ||\n code === 95 ||\n code === 91 ||\n code === 93 ||\n code === 126 ||\n markdownLineEndingOrSpace(code)\n )\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L214>.\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code)\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L307>.\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code))\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return (\n code === 43 ||\n code === 45 ||\n code === 46 ||\n code === 95 ||\n asciiAlphanumeric(code)\n )\n}\n\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n while (index--) {\n const token = events[index][1]\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n return result\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nconst unicodePunctuationInternal = regexCheck(/\\p{P}/u)\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function unicodePunctuation(code) {\n return asciiPunctuation(code) || unicodePunctuationInternal(code)\n}\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n }\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this\n let index = self.events.length\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {Token} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1]\n if (token.type === 'labelImage') {\n labelStart = token\n break\n }\n\n // Exit if we’ve walked far enough.\n if (\n token.type === 'gfmFootnoteCall' ||\n token.type === 'labelLink' ||\n token.type === 'label' ||\n token.type === 'image' ||\n token.type === 'link'\n ) {\n break\n }\n }\n return start\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code)\n }\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code)\n }\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return ok(code)\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length\n /** @type {Token | undefined} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n if (\n events[index][1].type === 'labelImage' &&\n events[index][0] === 'enter'\n ) {\n labelStart = events[index][1]\n break\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = 'data'\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n }\n // Increment the end 1 character.\n marker.end.column++\n marker.end.offset++\n marker.end._bufferIndex++\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n }\n /** @type {Token} */\n const chunk = {\n type: 'chunkString',\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n }\n\n /** @type {Array<Event>} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n ['enter', call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n ['enter', marker, context],\n ['exit', marker, context],\n // Everything in between.\n ['enter', string, context],\n ['enter', chunk, context],\n ['exit', chunk, context],\n ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n ['exit', call, context]\n ]\n events.splice(index, events.length - index + 1, ...replacement)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n let size = 0\n /** @type {boolean} */\n let data\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall')\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return callStart\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code)\n effects.enter('gfmFootnoteCallMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallMarker')\n effects.enter('gfmFootnoteCallString')\n effects.enter('chunkString').contentType = 'string'\n return callData\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n (code === 93 && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null ||\n code === 91 ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteCallString')\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code)\n }\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n effects.exit('gfmFootnoteCall')\n return ok\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n size++\n effects.consume(code)\n return code === 92 ? callEscape : callData\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return callData\n }\n return callData(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {string} */\n let identifier\n let size = 0\n /** @type {boolean | undefined} */\n let data\n return start\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true\n effects.enter('gfmFootnoteDefinitionLabel')\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n return labelAtMarker\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionMarker')\n effects.enter('gfmFootnoteDefinitionLabelString')\n effects.enter('chunkString').contentType = 'string'\n return labelInside\n }\n return nok(code)\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n (code === 93 && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null ||\n code === 91 ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteDefinitionLabelString')\n identifier = normalizeIdentifier(self.sliceSerialize(token))\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n effects.exit('gfmFootnoteDefinitionLabel')\n return labelAfter\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n size++\n effects.consume(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > <https://github.com/github/cmark-gfm/issues/240>\n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n if (!defined.includes(identifier)) {\n defined.push(identifier)\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(\n effects,\n whitespaceAfter,\n 'gfmFootnoteDefinitionWhitespace'\n )\n }\n return nok(code)\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition')\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'gfmFootnoteDefinitionIndent',\n 4 + 1\n )\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === 4\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nconst unicodePunctuationInternal = regexCheck(/\\p{P}/u)\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function unicodePunctuation(code) {\n return asciiPunctuation(code) || unicodePunctuationInternal(code)\n}\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [singleTilde=true]\n * Whether to support strikethrough with a single tilde (default: `true`).\n *\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\n\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {}\n let single = options_.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n if (single === null || single === undefined) {\n single = true\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n }\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n let open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n\n // Opening.\n /** @type {Array<Event>} */\n const nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n const insideSpan = context.parser.constructs.insideSpan.null\n if (insideSpan) {\n // Between.\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan, events.slice(open + 1, index), context)\n )\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n return events\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (\n previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape'\n ) {\n return nok(code)\n }\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous)\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open = !after || (after === 2 && Boolean(before))\n token._close = !before || (before === 2 && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nconst unicodePunctuationInternal = regexCheck(/\\p{P}/u)\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function unicodePunctuation(code) {\n return asciiPunctuation(code) || unicodePunctuationInternal(code)\n}\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array<Event>]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array<Change>}\n */\n this.map = []\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImpl(this, index, remove, add)\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0]\n })\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array<Jump>} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length\n /** @type {Array<Array<Event>>} */\n const vecs = []\n while (index > 0) {\n index -= 1\n vecs.push(\n events.slice(this.map[index][0] + this.map[index][1]),\n this.map[index][2]\n )\n\n // Truncate rest.\n events.length = this.map[index][0]\n }\n vecs.push([...events])\n events.length = 0\n let slice = vecs.pop()\n while (slice) {\n events.push(...slice)\n slice = vecs.pop()\n }\n\n // Truncate everything.\n this.map.length = 0\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\nfunction addImpl(editMap, at, remove, add) {\n let index = 0\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add)\n // }\n\n return\n }\n index += 1\n }\n editMap.map.push([at, remove, add])\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array<Event>} events\n// * @param {Array<Jump>} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly<Array<Event>>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array<Align>}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false\n /** @type {Array<Align>} */\n const align = []\n while (index < events.length) {\n const event = events[index]\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(\n events[index + 1][1].type === 'tableDelimiterMarker'\n ? 'left'\n : 'none'\n )\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true\n }\n index += 1\n }\n return align\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {EditMap} from './edit-map.js'\nimport {gfmTableAlign} from './infer.js'\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n let size = 0\n let sizeB = 0\n /** @type {boolean | undefined} */\n let seen\n return start\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1\n while (index > -1) {\n const type = self.events[index][1].type\n if (\n type === 'lineEnding' ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === 'linePrefix'\n )\n index--\n else break\n }\n const tail = index > -1 ? self.events[index][1].type : null\n const next =\n tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n return next(code)\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead')\n effects.enter('tableRow')\n return headRowStart(code)\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code)\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1\n return headRowBreak(code)\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true\n effects.exit('tableRow')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return headDelimiterStart\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, 'whitespace')(code)\n }\n sizeB += 1\n if (seen) {\n seen = false\n // Header cell count.\n size += 1\n }\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n // Whether a delimiter was seen.\n seen = true\n return headRowBreak\n }\n\n // Anything else is cell data.\n effects.enter('data')\n return headRowData(code)\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('data')\n return headRowBreak(code)\n }\n effects.consume(code)\n return code === 92 ? headRowEscape : headRowData\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return headRowData\n }\n return headRowData(code)\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n effects.enter('tableDelimiterRow')\n // Track if we’ve seen a `:` or `|`.\n seen = false\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return headDelimiterBefore(code)\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code)\n }\n if (code === 124) {\n seen = true\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return headDelimiterCellBefore\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code)\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, 'whitespace')(code)\n }\n return headDelimiterValueBefore(code)\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1\n seen = true\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterLeftAlignmentAfter\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code)\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code)\n }\n return headDelimiterNok(code)\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n return headDelimiterFiller(code)\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code)\n return headDelimiterFiller\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true\n effects.exit('tableDelimiterFiller')\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterRightAlignmentAfter\n }\n effects.exit('tableDelimiterFiller')\n return headDelimiterRightAlignmentAfter(code)\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, 'whitespace')(code)\n }\n return headDelimiterCellAfter(code)\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code)\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code)\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow')\n effects.exit('tableHead')\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code)\n }\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow')\n return bodyRowBreak(code)\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return bodyRowBreak\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow')\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, 'whitespace')(code)\n }\n\n // Anything else is cell content.\n effects.enter('data')\n return bodyRowData(code)\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('data')\n return bodyRowBreak(code)\n }\n effects.consume(code)\n return code === 92 ? bodyRowEscape : bodyRowData\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return bodyRowData\n }\n return bodyRowData(code)\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1\n let inFirstCellAwaitingPipe = true\n /** @type {RowKind} */\n let rowKind = 0\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0]\n /** @type {Range} */\n let cell = [0, 0, 0, 0]\n let afterHeadAwaitingFirstBodyRow = false\n let lastTableEnd = 0\n /** @type {Token | undefined} */\n let currentTable\n /** @type {Token | undefined} */\n let currentBody\n /** @type {Token | undefined} */\n let currentCell\n const map = new EditMap()\n while (++index < events.length) {\n const event = events[index]\n const token = event[1]\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n currentBody = undefined\n lastTableEnd = 0\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentTable, context]])\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n inFirstCellAwaitingPipe = true\n currentCell = undefined\n lastCell = [0, 0, 0, 0]\n cell = [0, index + 1, 0, 0]\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentBody, context]])\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1\n }\n // Cell data.\n else if (\n rowKind &&\n (token.type === 'data' ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n inFirstCellAwaitingPipe = false\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n lastCell = [0, 0, 0, 0]\n }\n cell[2] = index\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n }\n lastCell = cell\n cell = [lastCell[1], index, 0, 0]\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true\n lastTableEnd = index\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n lastTableEnd = index\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n )\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell)\n }\n rowKind = 0\n } else if (\n rowKind &&\n (token.type === 'data' ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n cell[3] = index\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n }\n map.consume(context.events)\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1\n while (++index < context.events.length) {\n const event = context.events[index]\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index)\n }\n }\n return events\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly<TokenizeContext>} context\n * @param {Readonly<Range>} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName =\n rowKind === 1\n ? 'tableHeader'\n : rowKind === 2\n ? 'tableDelimiter'\n : 'tableData'\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent'\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]))\n map.add(range[0], 0, [['exit', previousCell, context]])\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1])\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n }\n map.add(range[1], 0, [['enter', previousCell, context]])\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2])\n const relatedEnd = getPoint(context.events, range[3])\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n }\n map.add(range[2], 0, [['enter', valueToken, context]])\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]]\n const end = context.events[range[3]]\n start[1].end = Object.assign({}, end[1].end)\n start[1].type = 'chunkText'\n start[1].contentType = 'text'\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1\n const b = range[3] - range[2] - 1\n map.add(a, b, [])\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]])\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd))\n map.add(rowEnd, 0, [['exit', previousCell, context]])\n previousCell = undefined\n }\n return previousCell\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly<EditMap>} map\n * @param {Readonly<TokenizeContext>} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array<Event>} */\n const exits = []\n const related = getPoint(context.events, index)\n if (tableBody) {\n tableBody.end = Object.assign({}, related)\n exits.push(['exit', tableBody, context])\n }\n table.end = Object.assign({}, related)\n exits.push(['exit', table, context])\n map.add(index + 1, 0, exits)\n}\n\n/**\n * @param {Readonly<Array<Event>>} events\n * @param {number} index\n * @returns {Readonly<Point>}\n */\nfunction getPoint(events, index) {\n const event = events[index]\n const side = event[0] === 'enter' ? 'start' : 'end'\n return event[1][side]\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nconst unicodePunctuationInternal = regexCheck(/\\p{P}/u)\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function unicodePunctuation(code) {\n return asciiPunctuation(code) || unicodePunctuationInternal(code)\n}\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n}\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n return open\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n return nok(code)\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return after\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code)\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )(code)\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, 'whitespace')\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n","/// <reference types=\"remark-parse\" />\n/// <reference types=\"remark-stringify\" />\n\n/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-gfm').Options} MdastOptions\n * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {MicromarkOptions & MdastOptions} Options\n * Configuration.\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n const settings = options || emptyOptions\n const data = self.data()\n\n const micromarkExtensions =\n data.micromarkExtensions || (data.micromarkExtensions = [])\n const fromMarkdownExtensions =\n data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n const toMarkdownExtensions =\n data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n micromarkExtensions.push(gfm(settings))\n fromMarkdownExtensions.push(gfmFromMarkdown())\n toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n * Configuration.\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array<FromMarkdownExtension>}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n }\n}\n","export const privacy_policy_en = `December 14th, 2022\nOneTwo Analytics AB\n\n# Privacy Policy\n\nVersion: 1.1.5\n\n## 1. INTRODUCTION\n\nOneTwo Diabetes is issued by the company OneTwo Analytics AB (“OneTwo Analytics”, “we”, “us”, etc.). It is important that the people who use our services and products and visit our website etc. (collectively, the “Products”) feel safe and are informed of how we handle the users personal data (“user data”). We aim to maintain the highest possible standard of protection of personal data. This privacy policy (“Privacy policy”) describe how we collect, use and handle information and personally identifiable information about our users.\n\nOneTwo Analytics works to improve the lives of people with diabetes and supports caregivers who provides care for these people. We are glad to see that you are interested in our products.\n\n## 2. RESPONSIBILITY FOR THE PROCESSING OF PERSONAL DATA\n\nOneTwo Analytics is a Swedish company that develops and operates a set of decision support tools for people with diabetes and clinics that provide care for these patients. OneTwo Analytics is personal data controller for the processing of personal data that users register when they use our products.\n\n### Contacts\n\nIf you have any questions or comments regarding our processing of your personal data in connection with your use of the products, you are always welcome to contact us at [https://www.onetwo-diabetes.com](https://www.onetwo-diabetes.com) or by sending an e-mail to our data protection officer on [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com)\n\nContact information:\n\nOneTwo Analytics AB\n\nKungsgatan 84\n\n112 27 Stockholm\n\n## 3. COLLECTION OF PERSONAL DATA\n\n### 3.1 Personal data registered through your use of our products\n\nOneTwo Analytics processes personal data about you that you register via your account. This data includes name and email address when you open a user account with us and any information that you register when you use our products. In addition, we may automatically collect and process the following information: (I) Technical information, including IP address, login information, language settings etc.; and (II) Information about your use of the app, including which features you have used and when, etc.\n\nInformation about our use of cookies is in OneTwo Analytics’ cookie policy.\n\n## 4. WHERE YOUR PERSONAL DATA IS STORED\n\nAll personal information is stored and handled primarily within the EU / EEA. Should we decide to store data outside the EU / EEA, we would always take the necessary measures in accordance with the current privacy policy to ensure that your data is stored securely.\n\n## 5 WHY PERSONAL DATA IS PROCESSED\n\n### 5.1 General purposes\n\nOneTwo Analytics processes your user data for the following purposes:\n\n(i) to process your application or close your account,\n(ii) to identify your identity and age,\n(iii) to maintain accurate and up-to-date information about you,\n(iv) to enable you to use our products,\n(v) to analyze your use of our products and improve the products,\n(vi) to administer payments,\n(vii) to otherwise provide the products to you and needed support.\n\n### 5.2 Necessary processing\n\nIf you give your consent, we will process the user data listed below in order to provide our products. If you do not consent to the necessary processing, you cannot use OneTwo Analytics’ products. You can give your consents during the registration process and manage them in the account settings. (See section 10 on withdrawal of consent).\n\n### 5.2.1 Necessary user data\n\nTo protect your user data, our products can only be used in conjunction with a user account. To create a user account and to use our products requires and we process the following user data:\n\n- First name\n- Surname\n- National id number\n- Mobile phone number\n- E-mail address\n- Password\n- Registration date\n- Continuous glucose monitor that you use\n- Consent status\n- Device ID, manufacturer, device type, version of operating system\n- Language, country, time zone\n- IP address\n\nWe also collect medical data: blood sugar measurement and sensor data such as sensor value, time and time zone, date of birth, gender, diabetes type, year of onset and basic diabetes medication.\n\n### 5.2.2 Necessary purposes\n\nAll necessary purposes for our processing are associated with providing our products.\n\n- Registration leads to the creation of your user account with email address and password.\n- The provision of our products requires you to provide CGM data voluntarily.\n- Communication from OneTwo Analytics in our products or via other electronic messaging services (e.g., email) when required to support or troubleshoot our products. Use our support service, [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com), when you need to get in touch with us. Think about what information and data you want to provide in your active communication with us - it is entirely your decision. For our part, communication with user can be necessary either via email or push notification. This is how we inform you about updates to our product and provides important security advice and help in connection with your use. This support communication - as an important part of our products - is sent to users regardless of whether they subscribe to our newsletter or not.\n- Use of our products requires you to enter your CGM data. To resolve an error in the app we requires crash reports that we can use for troubleshooting purposes to determine the circumstances of the problem.\n- Key data of your device and your usage behavior are registered with us, which means that we can adapt our products, e.g., process individual user information that enables relevant adaptation of the user interface.\n\n### 5.3 Processing for product improvement\n\nWe also process your user data with the purpose of improving our products and services, which is described in more detail below.\n\n### 5.3.1 Usage data\n\nActivity events allow us to understand how you use our products. This makes it possible for us to see how our products are used and, for example, where menu designs can be optimized.\n\n### 5.3.2 Purpose of product improvement\n\nAs a result of rapid technological progress, we must continuously analyze, develop, test, and improve our products and their interactions to ensure that our content benefits users in the best way. To achieve this, we conduct usability and security tests, and the knowledge obtained is incorporated into improved new versions of our products, such as the app. These improvements are also provided via regular updates.\n\n### 5.4 Processing for marketing purposes\n\n### 5.4.1 Newsletter\n\nWe want to send you exciting information about products beyond the contractual scope (including information from carefully selected partners) and invitations to participate in surveys or other sales promotions and marketing activities (\"Newsletter\").\n\nYou can choose whether you want to subscribe to our newsletter (opt-in). You can revoke yours consent at any time via the link in the newsletter or in the account settings.\n\n### 5.4.2 Other types of marketing\n\nOther consents, e.g., for surveys or messages, are obtained as needed when you are logged in. We always explain why we need certain data and how you can withdraw consent.\n\n### 5.5 Use for statutory purposes\n\n### 5.5.1 Scientific research and statistics\n\nOneTwo Analytics is committed to the science of all aspects of diabetes. Therefore, anonymous user data can also be used for research and statistics (always in accordance with recognized ethical scientific standards) and internal analyses. This is primarily used to determine and improve efficiency in techniques to control and treat diabetes. The legal basis for this is Article 9.2 j GDPR.\n\n### 5.5.2 Enforcement of rights\n\nThe use of personal data may also be necessary to prevent misuse by users or to assert, exercise or defend legal claims. We may be forced to disclose due to binding laws, court or official decisions and instructions, criminal investigation or in the public interest. In such cases, the storage and processing of your data is permitted by law without your consent. The legal basis for this is Article 9.2 f GDPR.\n\n## 6. HOW LONG WE KEEP YOUR DATA\n\nOneTwo Analytics only processes your personal data as long as it is necessary for the purposes for which the information in question is processed according to section 5 above. This means that we only keep information as long as it is necessary to be able to provide the products or fulfill our legal obligations.\n\n## 7. THIRD PARTY\n\nIn order for OneTwo Analytics to be able to offer the products, it uses external suppliers who process personal data in some cases, for example hosting providers. These service providers process personal data as data processors (\"Processors\") and on behalf of the OneTwo Analytics. They only get to process the data for the purpose of providing the services requested by OneTwo Analytics, and in accordance with OneTwo Analytics’ instructions.\n\n## 8. TRANSFER TO THIRD COUNTRIES\n\nOneTwo Analytics does not transfer data to third countries, namely countries outside the EU / EEA. This may change in the future. However, the transfer of personal data to countries outside the EU / EEA only takes place if the transfer is legal under applicable data protection legislation.\n\n## 9. GENERAL INFORMATION\n\n### 9.1 Purpose limitation and security\n\nOneTwo Analytics uses your personal data exclusively for the purposes stated in this Privacy Policy and relevant consents. We ensure that each processing is limited to the extent that is necessary for its purpose. Each treatment always guarantees sufficient security and confidentiality for your personal data. This covers protection against unauthorized and illegal processing, accidental loss, accidental destruction or damage with appropriate technical and organizational measures. We use strict internal processes, security features and encryption methods.\n\n### 9.2 Processors\n\nWe only use processors that offer sufficient guarantees that appropriate technical and organizational measures are taken in a way that the processing of personal data meets the statutory requirements and our privacy policy. The protection of our users' rights is ensured by entering into binding agreements that meet the strict requirements of GDPR.\n\nThird party providers appointed by OneTwo Analytics may only use other processors (subcontractors) with our prior consent. If a subcontractor does not meet the same data protection obligations and any appropriate security measures we impose on our processors, we will prohibit employing such a subcontractor.\n\n### 9.3 Encryption, pseudonymization and anonymization\n\nEvery data transfer, without exception and by default, is encrypted during transfer. By using HTTPS (Hypertext Transfer Protocol Secure) we ensure that unauthorized third parties do not intercept your data.\n\nFor data security and minimization purposes, we also use other processes for encryption and pseudonymization of user data. Of course, this depends on the type, scope, and purpose of relevant data processing. For example, we only disclose user data that a processor needs to perform their duties.\n\nWhen a contractual relationship with a processor is terminated, such processor must, according to the OneTwo Analytics’ assessment, either return all of our user data or delete it if there are no statutory storage obligations.\n\nData that does not require a personal reference for processing (e.g., for research and analysis) is anonymized.\n\n## 10. YOUR RIGHTS\n\nYou have many rights related to the personal data we process about you, based on the applicable data protection legislation. You can contact us at any time to:\n\n- Request access to and information about the personal data processed by us (right to access),\n- \"Right to be forgotten.\" Every user has the right to request the deletion of their personal data. To do so, please contact us at any time at [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n- Ask us to restrict the processing of your personal data if you believe that such data is incorrect, if our processing is illegal or if we no longer need to process such data for a particular purpose unless we are required to retain such according to one or another obligation,\n- Object to the processing of your personal data where the legal justification for our processing your personal data is our legitimate interest. We will comply with your request if we do not have a compelling legitimate basis for the processing that overrides your interest or rights, or if we need to process such data for possible legal claims,\n- Revoke your consent via the account settings or by sending an e-mail to [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com), and\n- Request that your personal data be moved to another personal data controller by receiving your personal data, to the extent that it has been provided by you, in an electronic format which is usually used to be able to transfer them to another party (the right to data portability).\n\nIf you wish to contact us regarding any of the rights mentioned above, please contact us via our website or by sending an email to [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\n## 11. RIGHT TO REGISTER A COMPLAINT\n\nIf you consider that the processing of your personal data is incorrect or inconsistent with the legal requirements, you have the right to submit a complaint to the relevant data protection authority. In Sweden the relevant data protection authority is the Swedish Authority for Privacy Protection (IMY).\n\n## 12. CONTACT\n\nWe hope that this Privacy Policy has made it clear how we handle your personal data and have answered any questions you had. But if you have any questions, you are always welcome to contact us via our website or by sending an email to [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com). We will handle your request as soon as possible.\n`\n","export const terms_of_use_en = `December 14th, 2022\nOneTwo Analytics AB\n\n# Terms of use\n\nVersion: 1.1.5\n\n## 1. Introduction\nOneTwo Diabetes is a product published by the company OneTwo Analytics AB, (\"OneTwo Analytics\"). These Terms of Use (\"Terms\") refer to the use of this product, both as mobile app and on the web. The terms apply between OneTwo Analytics and you as a user when you visit our website or use any of our products or services (collectively, the \"Products\").\n\nWe would like to emphasize that our product should only be used to provide you with information to raise awareness about your diabetes, however, it cannot replace consultation and diagnosis by health professionals. OneTwo Diabetes provides, under no circumstances, recommendations on medical therapy or medical counseling of any kind. For questions about illness and therapy, we recommend that you contact your healthcare provider. The data may only be analyzed by you and your healthcare provider. No content – whether it is provided by OneTwo Diabetes, our partners or users - can be supplementing or replacing information from healthcare providers.\n\nOneTwo Diabetes should not be used in an emergency. In the event of an emergency, contact nearest rescue unit or call 112.\n\nPlease read these terms and conditions carefully. Access and use of OneTwo Diabetes is conditional on your agreement to these terms and conditions. You must read, confirm, and accept all the terms and conditions contained in this document. By using our product, you accept these terms and conditions. If you have any questions related to these terms and conditions, please feel free to contact OneTwo Diabetes at [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\nOneTwo Analytics is a Swedish company headquartered at Kungsgatan 84, 112 27 Stockholm. The company works to improve the lives of people with diabetes and supports healthcare providers who provide care for these people. The products provide a secondary analysis of data from continuous glucose monitoring on a suitable device (phone or tablet). The product does not replace continuous real-time glucose monitoring or regular home blood glucose monitoring. For any medical decisions about your health, consult your doctor and use your continuous glucose monitor (CGM).\n\n## 2. Changes to the terms\nWe explicitly reserve the right to make future changes to our Terms when we deem it to be necessary. For example, changes may be necessary to comply with legal requirements, correspond to technical and financial requirements or to satisfy the interests of our users.\n\nChanges to our terms and conditions will be informed to our users before they take effect. Minor changes to our terms and conditions will not be communicated to our users before they take effect. We therefore recommend that all users regularly read the latest and current version of the terms and conditions.\n\nThe use of our product requires your registration at OneTwo Diabetes in our channels or where apps are provided. Once you have activated our product for the first time, you must register with an email address and password. By registering, the user agrees to enter into an agreement with OneTwo Analytics for the use of our product OneTwo Diabetes. We explicitly accept such an offer by activating your user account.\n\nActivation is confirmed immediately after registration by allowing you to use our product. We reserve the rights to reject individual users or their offer to enter a contract without giving reasons. In such a case, all provided user data will be deleted immediately.\n\nWith your registration and activation, you acquire the non-exclusive, non-transferable but geographically unlimited right to save and use a copy of our product or app for your own purposes within the framework of these conditions. You can use our free product without a time limit. If you have questions about your time of use or its end, please contact [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\nUpon registration, the user confirms their approval and unlimited acceptance of the content in these terms and that the information is true, accurate, up-to-date, and complete. Users are required to regularly update their personal information. OneTwo Diabetes can change or remove any information it deems inappropriate or illegal or otherwise likely to expose OneTwo Diabetes to third-party claims. You agree that we may take steps to verify the accuracy of the information you have provided to us. We reserve the right to contact users to verify registration data and usage information.\n\nIf a user provides false, inaccurate, out-of-date or incomplete information or if we have reason to believe that the information is false, inaccurate, out of date or incomplete, OneTwo Diabetes has the right to block the specific user account with immediate effect without prior notice and prohibit the use of our product without being obliged to pay back user for any costs.\n\nYou are responsible for maintaining the security of your user account. In addition, you are fully responsible for all activities that occur under the account and all other actions taken in connection with the account.\n\nYou are responsible for taking reasonable actions to maintain the confidentiality of your username and password. You must immediately notify OneTwo Diabetes on [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com) of unauthorized use of your information, account, or other security breaches. OneTwo Diabetes will not be responsible for any information or omissions by you, including damages of any kind that may occur because of such information or omissions.\n\nThe user must protect their user account and registration data from misuse and use with fraudulent intent. If there is even a suspicion that it has been exposed to such risks, this must be communicated to [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com) without delay. We have the right to block the user's account if used for incorrect or fraudulent intentions.\n\nWe reserve the right to temporarily block users at any time for any important reason (according to our judgment) or to permanently exclude them from using our product.\n\nWhat constitutes a major cause and whether it is considered to have occurred is assessed by OneTwo Diabetes.\n\n## 3. User’s responsibilities\nEach user has the right and obligation to use our product at their own risk and expense at appropriate technical equipment. The devices and operating systems that are compatible with the product can be found in the app stores or can be requested from [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com) at any time.\n\nYou are obliged to use our product solely in accordance with these terms and conditions and statutory regulations and avoid any misuse. Please notify us immediately if you discover a crime against the particulars listed in this section on [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\nEach user is obliged to enter their registration data in a truthful manner, to keep it updated and complete and not to pass it on to any third party. Personal data must be treated confidentially, carefully managed, and backed up under your own responsibility. OneTwo Diabetes takes no responsibility or other guarantees for lost or damaged data or content.\n\nContent such as photos, images, texts, videos, or other images may only be stored, published, transmitted or distributed in connection with our product if the user has the right to transfer or use them. In all cases, the use of racist, offensive, discriminatory, slanderous, sexual, pornographic, violent, or other illegal content of all kinds are always prohibited.\n\nIt is forbidden to decrypt, convert, decompile, or disassemble our product. Each user is obliged not to carry out any technical or electronic interference with our product or network of OneTwo Diabetes (in particular, hacking attempts, brute force attacks, the introduction of viruses, worms, Trojans, other malicious software) or any kind of attempted interference that may affect the software or hardware of the OneTwo Diabetes product and system.\n\n## 4. OneTwo Analytics responsibilities\nUnless otherwise stated in these Terms, OneTwo Analytics is responsible and provides warranties under statutory Provisions. In the case of users who are not consumers, liability for financial losses, consequential damages, lost profits, and damages resulting from a third-party are excluded. If our responsibility is limited or excluded in these terms and conditions, this also applies to substituted agents and affiliated companies in OneTwo Analytics.\n\nOutside the scope of product liability legislation, OneTwo Analytics' liability is limited to intentional acts and gross negligence - except for personal injury. Liability for slight negligence is excluded when faced with objective justifications.\n\nOneTwo Analytics gives no warranty that our product will be fully available without interruption and without errors or that the necessary software and hardware works without errors. Nor can we rule out the possibility that data may be tracked, recorded, or falsified by third parties during data transmission via third-party systems, especially the Internet and other telecommunications networks.\n\nOneTwo Analytics does not offer any warranty for downloaded content or materials that users have received because of the use of our products. The user is solely responsible for any damage that may be created in their IT systems or devices or for loss of data due to downloading of materials associated with our products.\n\nOneTwo Analytics is not responsible for third-party content such as external links, banners, other information, or promotional offers from third parties that may be placed as part of our products. If we enable access to third-party offers via messages or links, OneTwo Analytics is not responsible for the information contained in it. Resulting legal transactions with third parties lead exclusively to contractual relations between the user and the relevant third party. We do not offer anyone warranty or accept any liability for third-party products.\n\nThe use of our products does not replace consultation with healthcare providers or other medical professionals’ advice and is done exclusively at the user's own risk. This applies to the use of data that is provided as part of our products including blood glucose results, predictions, calculations, and possible recommendations. The user expressly acknowledges that such information may be defective, and OneTwo Analytics assumes no responsibility for its accuracy.\n\nTo the extent required by applicable medical device legislation governing the use of the product, the product may only be used or used exclusively according to the purpose, the specifications and application areas specified in the offer and terms of use.\n\n## 5. Availability of our products\nWe provide our products in each case in accordance with existing technical, economic, operational, and organizational capabilities. OneTwo Analytics cannot exclude any interruptions, disruptions, delays, deletions, incorrect transfers, or storage errors in connection with the use of our product or communication with users. We partly offer our product in cooperation with third-party providers and therefore also depend on the availability of third-party products. Therefore, OneTwo Analytics accepts no responsibility, warranty, liability, or obligation to provide our product online all the time without interruption.\n\nThe previous paragraph also applies to restrictions on the use of our product due to force majeure, strikes, lockouts and official instructions or due to technical changes or maintenance work on the OneTwo Analytics systems. In case of disruptions or failure of our product, please contact [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com) at any time.\n\n## 6. Purchases and payments\nOur product, OneTwo Diabetes, can be accessed or downloaded on the AppStore and Google Play and requires a user account.\n\nWe expressly reserve the right to restrict free products at any time, stop them altogether or charge a fee for them. The user has no legal right to any future free use of individuals products or parts thereof for a certain period.\n\nOneTwo Analytics can also make special and free offers that are subject to additional conditions or restrictions. In this regard, we expressly refer to any deviations from these terms while otherwise, the entire content of these terms and conditions is still applicable. Special offers or Free offers cannot be transferred to other users.\n\nConfigurations and prices of the product are subject to change at any time, and OneTwo Analytics always has the right to change configurations, fees, prices, and quotes. You agree to such changes unless you object in writing to OneTwo Analytics within seven (7) business days of receiving a notification from OneTwo Analytics, or an invoice, containing or notifying the fee and/or price changes.\n\nAll prices are excluding VAT and you shall pay all taxes, duties, fees or other similar fees placed on OneTwo Analytics or yourself by any tax authority (other than taxes such as added to OneTwo Analytics revenue), related to your order, unless you have provided OneTwo Analytics with an appropriate resale or exemption certificate for the place of delivery, which is the place where products are used or carried out. In the event of changes in the law so that a tax is charged that is or becomes rechargeable with a consequent increased cost of OneTwo Analytics to deliver the product, whereby and to the extent that OneTwo Analytics has the right to increase its prices thereafter and with retroactive effect.\n\n## 7. Denunciation\nYou can end your agreement and close your account with OneTwo Analytics at any time, starting on the last the day of your subscription period, by sending an email to [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com). OneTwo Analytics may terminate its relationship with you or terminate at any time or discontinue the availability of the product, including use of software if you violate these terms and/or any other agreement with OneTwo Analytics. \n\n## 8. Third-party providers\nYou can find our products on our website (www.onetwo-diabetes.com) or in the app stores. In general, the terms and conditions of the relevant third-party service provider apply, over which we have no influence. These are not part of our terms and conditions or our contractual relationship with you as a user of our Products.\n\nWe work with various partners to ensure optimal use of our product. These include partners who supply us or our users directly with certain products (for example, continuous glucose meters). In these cases, we explicitly emphasize the applicable terms of business of the third-party supplier that you must accept before you can acquire one of our products through a third-party provider.\n\n## 9. Privacy\nWe refer to our Privacy documentation for detailed information on how we treat your personal data including clear instructions on your rights and further how you can exercise such rights.\n\n## 10. Copyright\nThe software, code, methods and systems, and content of our products are protected by copyright and competition laws and may only be used by OneTwo Analytics. Our product or parts therefore may not be copied, modified, reproduced, republished, republished, transmitted, be sold, offered for sale, resold, or used in any other way without our foregoing written consent. Users may not use trademarks, logos, other commercial ownership rights or OneTwo Diabetes trademark rights. Unless otherwise stated in these Terms all use and exploitation rights are owned exclusively by OneTwo Analytics or an affiliate company and there is no licensing of any kind for our products.\n\nIf this is required for the technical provision of our product, each user provides OneTwo Diabetes a non-exclusive, revocable but free, transferable right of exploitation and use, unlimited in terms of time and place, to the content they generate, transmit, store, or publish within our products. However, use or exploitation is excluded if this disproportionately affects the legitimate interests of the user (for example, privacy rights). At use outside of our product, if appropriate, we will indicate that the content comes from the user. OneTwo Diabetes does not claim any ownership of created content and will not to take any monitoring feature with respect to user-created content.\n\n## 11. Changes to products\nThe configurations and specifications of our website, including without limitation all content available, and the product may be changed and/or updated, according to OneTwo Analytics’ assessment. Users are bound by such changes or updates.\n\n## 12. Compensations\nThe user accepts full responsibility for all damages and disputes within and out of court that arise due to conflicts with other users. The user expressly admits that OneTwo Diabetes under no circumstances is responsible for the actions or omissions of other users and any damage that occurs.\n\nIn the event of a claim against OneTwo Diabetes from third parties, the user is obliged to immediately provide all information available to them in a truthful and complete manner that requires to review, defend, and prevent third-party claims.\n\n## 13. Other\nThese terms and conditions and the entire legal relationship between OneTwo Diabetes and the user are subject to Swedish law, and the courts in Sweden have exclusive jurisdiction to examine any claims derived from them. However, as a consumer, the user enjoys the protection of mandatory provisions of the country in which they reside or habitually reside.\n\nThe agreement between the user and OneTwo Analytics, as set out in these Terms, is personal, which is why the user is not allowed to transfer these to another person without our prior written consent. Only the user can enforce these terms, although the user may enforce them for a child who has used our products in accordance with these terms and conditions.\n\nOneTwo Diabetes may transfer its rights and obligations from these terms to another company or third parties. If individual provisions of these Terms are or become ineffective, the others remain the provisions of these Terms and Conditions which are not affected by the invalidity valid and applicable.\n\n## 14. Important note about minors\nUpon registration, the user confirms that they are at least 18 years old and that applicable law allows them to enter into agreements. Only people with legal authority are allowed to register. Minors are only allowed with the express consent of a parent/guardian. With the registration, the parent/guardian declare that they have the right to submit legally binding declarations in the child's name.\n`\n","import { useParams } from \"react-router-dom\"\n\nimport ReactMarkdown from \"react-markdown\"\nimport remarkGfm from \"remark-gfm\"\nimport \"./MarkDownBox.css\"\nimport { assets } from \"../../assets/Assets\"\nimport { privacy_policy_en } from \"../../assets/md/privacy_policy_en.js\"\nimport { privacy_policy_sv } from \"../../assets/md/privacy_policy_sv.js\"\nimport { terms_of_use_en } from \"../../assets/md/terms_of_use_en.js\"\nimport { terms_of_use_sv } from \"../../assets/md/terms_of_use_sv.js\"\nimport { Button } from \"../Button\"\n\nexport default function MarkdownBox({ legalDocumentType }) {\n const { language } = useParams()\n let legalDocument = \"\"\n if (legalDocumentType === \"privacy\") {\n if (language === \"en\") {\n legalDocument = privacy_policy_en\n } else if (language === \"sv\") {\n legalDocument = privacy_policy_sv\n } else {\n legalDocument = privacy_policy_en\n }\n }\n if (legalDocumentType === \"terms\") {\n if (language === \"en\") {\n legalDocument = terms_of_use_en\n } else if (language === \"sv\") {\n legalDocument = terms_of_use_sv\n } else {\n legalDocument = terms_of_use_en\n }\n }\n return (\n <div>\n <Button className=\"btn btn--primary btn--small\" linkTo={\"/\"}>\n Back\n </Button>\n <div className=\"markdown-wrapper\">\n <div className=\"markdown-header\">\n <img\n className=\"legal-logo\"\n src={assets.onetwoDiabetes}\n alt={\"Onetwo Diabetes logo\"}\n />\n <img\n className=\"legal-logo\"\n src={assets.onetwoAnalytics}\n alt={\"Onetwo Analytics logo\"}\n />\n </div>\n <ReactMarkdown\n className={\"markdown\"}\n remarkPlugins={[remarkGfm]}\n children={legalDocument}\n />\n </div>\n </div>\n )\n}\n","export const privacy_policy_sv = `14 december, 2022\nOneTwo Analytics AB\n\n# Integritetspolicy\n\nVersion: 1.1.5\n\n## 1. INTRODUKTION\nOneTwo Diabetes ges ut av bolaget OneTwo Analytics AB (”OneTwo Analytics”, ”vi”, ”oss”, etc). Det är viktigt att de personer som använder våra tjänster, produkter, besöker vår webbplats etc. (tillsammans kallade ”Produkter”) känner sig säkra och informeras om hur vi hanterar användarnas personuppgifter (”användardata”). Vi strävar efter att upprätthålla högsta möjliga standard för skydd av personuppgifter. Denna integritetspolicy (\"Integritetspolicy\") beskriver hur vi samlar in, använder och hanterar information och personligt identifierbar information om våra användare.\n\nOneTwo Analytics arbetar för att förbättra livet för personer med diabetes och stöder vårdgivare som tillhandahåller vård för dessa personer. Vi är glada att se att du är intresserad av våra produkter.\n\n## 2. ANSVAR FÖR BEHANDLING AV PERSONUPPGIFTER\nOneTwo Analytics är ett svenskt företag som utvecklar och driver en uppsättning beslutsstödverktyg för personer med diabetes och kliniker som tillhandahåller vård för dessa patienter. OneTwo Analytics är personuppgiftsansvarig för behandling av personuppgifter som användare registrerar när de använder våra produkter.\n\n### Kontakter\nOm du har några frågor eller kommentarer angående vår behandling av dina personuppgifter i samband med din användning av produkterna är du alltid välkommen att kontakta oss på [www.onetwo-diabetes.com](http://www.onetwo-diabetes.com) eller genom att skicka ett e-postmeddelande till oss på [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\nContact information:\n\nOneTwo Analytics AB\n\nKungsgatan 84\n\n112 27 Stockholm\n\n## 3. INSAMLING AV PERSONUPPGIFTER\n### 3.1 Personuppgifter som registreras via din användning av våra produkter\nOneTwo Analytics behandlar personuppgifter om dig som du registrerar via ditt konto. Dessa uppgifter inkluderar namn och e-postadress när du öppnar ett användarkonto hos oss och all information som du registrerar när du använder våra produkter. Dessutom kan vi automatiskt samla in och behandla följande information: (I) Teknisk information, inklusive IP-adress, inloggningsinformation, språkinställningar etc.; och (II) Information om din användning av appen, inklusive vilka funktioner du har använt och när, etc.\n\nInformation om vår användning av cookies finns i OneTwo Analytics cookiepolicy\n\n## 4. VAR DINA PERSONUPPGIFTER LAGRAS\nAll personlig information lagras och hanteras främst inom EU / EES. Om vi skulle besluta att lagra data utanför EU / EES skulle vi alltid vidta nödvändiga åtgärder i enlighet med gällande sekretessregler för att säkerställa att dina uppgifter lagras säkert.\n\n## 5 VARFÖR PERSONLIGA DATA BEHANDLAS\n### 5.1 Allmänna ändamål\n(i) att behandla din ansökan eller avsluta ditt konto,\n(ii) för att identifiera din identitet och ålder,\n(iii) för att upprätthålla korrekt och uppdaterad information om dig,\n(iv) för att du ska kunna använda våra produkter,\n(v) för att analysera din användning av våra produkter och förbättra produkterna,\n(vi) att administrera betalningar,\n(vii) för att annars kunna tillhandahålla produkterna till dig och erbjuda support.\n\n### 5.2 Nödvändig bearbetning\nOm du ger ditt samtycke bearbetar vi de användardata som anges nedan för att kunna tillhandahålla våra produkter. Om du inte samtycker till den nödvändiga behandlingen kan du inte använda OneTwo Analytics produkter. Du kan ge dina samtycken under registreringsprocessen och hantera dem i kontoinställningarna. (Se avsnitt 10 om återkallande av samtycke).\n\n### 5.2.1 Nödvändiga användardata\nFör att skydda dina användardata kan våra produkter endast användas i samband med ett användarkonto. För att skapa ett användarkonto och för att använda våra produkter kräver och bearbetar vi följande användardata:\n\n - Förnamn\n - Efternamn\n - Personnummer\n - Mobilnummer\n - E-postadress\n - Lösenord\n - Registrerings datum\n - Kontinuerlig glukosmonitor som du använder\n - Samtycksstatus\n - Enhets-ID, tillverkare, enhetstyp, operativsystemversion\n - Språk, land, tidszon\n - IP-adress\n\nVi samlar också in medicinska data: blodsockermätning och sensordata som sensorvärde, tid och tidszon, födelsedatum, kön, diabetes typ, debutår och grundläggande diabetesmedicinering.\n\n### 5.2.2 Nödvändiga syften\nAlla nödvändiga ändamål för vår behandling är förknippade med att tillhandahålla våra produkter.\n\n - Registrering leder till att ditt användarkonto skapas med e-postadress och lösenord.\n - Tillhandahållandet av våra produkter kräver att du tillhandahåller CGM-uppgifter frivilligt.\n - Kommunikation från OneTwo Analytics i våra produkter eller via andra elektroniska meddelandetjänster (t.ex. e-post) när det krävs för att stödja eller felsöka våra produkter. Använd vår supporttjänst, [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com), när du behöver komma i kontakt med oss. Tänk på vilken information och data du vill ge i din aktiva kommunikation med oss - det är bara ditt beslut. Vi kommunicerar med användare via e-post eller push-meddelande. Vi informerar vi dig om uppdateringar av vår produkt och ger viktiga säkerhetsråd samt hjälp i samband med din användning via e-post eller push-meddelande. Supportkommunikation är en viktig del av våra produkter som skickas till användare oavsett om de prenumererar på vårt nyhetsbrev eller inte.\n - Användning av vår produkt kräver att du anger dina CGM-data. För att lösa ett fel i appen kräver vi kraschrapporter som vi kan använda för felsökningsändamål för att fastställa problemets omständigheter.\n - Nyckeluppgifter för din enhet och ditt användningsbeteende registreras hos oss, det innebär att vi kan anpassa våra produkter, tex bearbeta individuell användarinformation som möjliggör relevant anpassning av användargränssnittet.\n\n### 5.3 Bearbetning för produktförbättring\nVi behandlar också dina användardata för att förbättra våra produkter och tjänster, som beskrivs mer detaljerat nedan.\n\n### 5.3.1 Användningsdata\nAktivitetshändelser gör att vi kan förstå hur du använder våra produkter. Detta gör det möjligt för oss att se hur våra produkter används och till exempel var menydesigner kan optimeras.\n\n### 5.3.2 Syfte med produktförbättring\nSom ett resultat av snabba tekniska framsteg måste vi kontinuerligt analysera, utveckla, testa och förbättra våra produkter och deras interaktioner för att säkerställa att vårt innehåll gynnar användarna på bästa sätt. För att uppnå detta genomför vi användnings- och säkerhetstester, och den kunskap som erhålls införlivas i förbättrade nya versioner av våra produkter, till exempel appen. Dessa förbättringar tillhandahålls också via regelbundna uppdateringar.\n\n### 5.4 Bearbetning för marknadsföringsändamål\n### 5.4.1 Nyhetsbrev\nVi vill skicka dig spännande information om produkter utöver det kontraktsmässiga omfånget (inklusive information från noggrant utvalda partners) och inbjudningar att delta i undersökningar eller andra säljfrämjande åtgärder och marknadsföringsaktiviteter (\"Nyhetsbrev\").\n\nDu kan välja om du vill prenumerera på vårt nyhetsbrev (opt-in). Du kan när som helst återkalla ditt samtycke via länken i nyhetsbrevet eller kontoinställningarna.\n\n### 5.4.2 Andra typer av marknadsföring\nAndra samtycken, t.ex. för undersökningar eller meddelanden, erhålls efter behov när du är inloggad. Vi förklarar alltid varför vi behöver vissa uppgifter och hur du kan återkalla samtycket.\n\n### 5.5 Användning för lagstadgade ändamål\n### 5.5.1 Vetenskaplig forskning och statistik\nOneTwo Analytics är engagerad i vetenskapen om alla aspekter av diabetes. Därför kan anonyma användardata också användas för forskning och statistik (alltid i enlighet med erkända etiska vetenskapliga standarder) och interna analyser. Detta används främst för att bestämma och förbättra effektiviteten hos tekniker för att kontrollera och behandla diabetes. Den rättsliga grunden för detta är artikel 9.2 j. i GDPR.\n\n### 5.5.2 Verkställighet av rättigheter\nAnvändningen av personuppgifter kan också vara nödvändig för att förhindra missbruk av användare eller för att hävda, utöva eller försvara rättsliga anspråk. Vi kan tvingas avslöja användaruppgifter på grund av bindande lagar, domstols- eller officiella beslut och instruktioner, brottsutredning eller i allmänhetens intresse. I sådana fall är lagring och behandling av dina uppgifter tillåtna enligt lag utan ditt samtycke. Den rättsliga grunden för detta är artikel 9.2 f. i GDPR.\n\n## 6. HUR LÄNGE VI BEHÅLLER DINA DATA\nOneTwo Analytics behandlar endast dina personuppgifter så länge det är nödvändigt för de ändamål för vilka informationen i fråga behandlas enligt avsnitt 5 ovan. Detta innebär att vi bara behåller information så länge det är nödvändigt för att kunna tillhandahålla produkterna eller uppfylla våra juridiska skyldigheter.\n\n## 7. TREDJE PART\nFör att OneTwo Analytics ska kunna erbjuda produkterna använder vi externa leverantörer som behandlar personuppgifter i vissa fall, till exempel värdleverantörer. Dessa tjänsteleverantörer behandlar personuppgifter som databehandlare (\"Processorer\") och på uppdrag av OneTwo Analytics. De får endast behandla uppgifterna i syfte att tillhandahålla de tjänster som OneTwo Analytics begär, och i enlighet med OneTwo Analytics instruktioner.\n\n## 8. ÖVERFÖRINGAR TILL TREDJE LÄNDER\nOneTwo Analytics överför inga uppgifter till tredjeländer, nämligen länder utanför EU / EES. Detta kan förändras i framtiden. Överföring av personuppgifter till länder utanför EU / EES sker dock endast om överföringen är laglig enligt tillämplig dataskyddslagstiftning.\n\n## 9. ALLMÄN INFORMATION\n### 9.1 Syftebegränsning och säkerhet\nOneTwo Analytics använder dina personuppgifter uteslutande för de ändamål som anges i denna Integritetspolicy och relevanta samtycken. Vi ser till att varje bearbetning är begränsad i den utsträckning som är nödvändig för dess ändamål. Varje behandling garanterar alltid tillräcklig säkerhet och konfidentialitet för dina personuppgifter. Detta täcker skydd mot obehörig och olaglig behandling, oavsiktlig förlust, oavsiktlig förstörelse eller skada med lämpliga tekniska och organisatoriska åtgärder. Vi använder strikta interna processer, säkerhetsfunktioner och krypteringsmetoder.\n\n### 9.2 Processorer\nVi använder endast processorer som erbjuder tillräckliga garantier för att lämpliga tekniska och organisatoriska åtgärder vidtas på ett sätt som behandlingen av personuppgifter uppfyller de lagstadgade kraven och vår integritetspolicy. Skyddet av våra användares rättigheter säkerställs genom att ingå bindande avtal som uppfyller de strikta kraven i GDPR.\n\nTredjepartsleverantörer som utsetts av OneTwo Analytics får endast använda andra processorer (underleverantörer) med vårt tidigare samtycke. Om en underleverantör inte uppfyller samma skyldigheter för dataskydd och alla lämpliga säkerhetsåtgärder som vi inför våra processorer, kommer vi att förbjuda att anställa en sådan underleverantör.\n\n### 9.3 Kryptering, pseudonymisering och anonymisering\nVarje dataöverföring, utan undantag och som standard, krypteras under överföringen. Med hjälp av HTTPS (hypertextöverföringsprotokoll säkert) ser vi till att obehöriga tredje parter inte fångar upp dina uppgifter\n\nFör datasäkerhet och minimeringsändamål använder vi också andra processer för kryptering och pseudonymisering av användardata. Naturligtvis beror detta på typen av, omfattning och syfte med relevant databehandling. Till exempel avslöjar vi bara användardata som en processor behöver för att utföra sina uppgifter.\n\nNär ett avtalsförhållande med en processor avslutas, måste en sådan processor, enligt OneTwo Analytics bedömning, antingen returnera all vår användardata eller radera den om det inte finns lagstadgade lagringsskyldigheter.\n\nUppgifter som inte kräver någon personlig referens för bearbetning (t.ex. för forskning och analys) anonymiseras.\n\n## 10. DINA RÄTTIGHETER\nDu har många rättigheter relaterade till de personuppgifter vi behandlar om dig, baserat på tillämplig dataskyddslagstiftning. Du kan när som helst kontakta oss för att:\n\n - Begära åtkomst till och information om de personuppgifter som behandlas av oss (rätt till åtkomst),\n - \"Rätt att glömmas bort.\" Varje användare har rätt att begära radering av sina personuppgifter. För att göra det, vänligen kontakta oss när som helst på [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com),\n - Be oss att begränsa behandlingen av dina personuppgifter om du anser att sådana uppgifter är felaktiga, om vår behandling är olaglig eller om vi inte längre behöver behandla sådana uppgifter för ett visst ändamål såvida vi inte är skyldiga att behålla sådana på grund av en eller annan skyldighet,\n - Motsätta dig behandlingen av dina personuppgifter där den juridiska motiveringen för vår behandling av dina personuppgifter är vårt legitima intresse. Vi kommer att följa din begäran om vi inte har en övertygande legitim grund för behandlingen som åsidosätter ditt intresse eller rättigheter, eller om vi behöver behandla sådana uppgifter för eventuella rättsliga anspråk,\n - Återkalla ditt samtycke via kontoinställningarna eller genom att skicka ett e-postmeddelande till [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com), och\n - Begära att dina personuppgifter flyttas till en annan personuppgiftsansvarig genom att ta emot dina personuppgifter, i den utsträckning de har tillhandahållits av dig, i ett elektroniskt format som vanligtvis används för att kunna överföra dem till en annan part (rätten till dataportabilitet).\n\nOm du vill kontakta oss angående någon av de rättigheter som nämns ovan, vänligen kontakta oss via vår webbplats eller genom att skicka ett e-postmeddelande till [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\n## 11. RÄTT ATT REGISTRERA ETT KLAGOMÅL\nOm du anser att behandlingen av dina personuppgifter är felaktig eller inte överensstämmer med de juridiska kraven, har du rätt att lämna in ett klagomål till relevant dataskyddsmyndighet. I Sverige är relevant dataskyddsmyndighet Svenska Integritetsskyddsmyndigheten (IMY).\n\n## 12. KONTAKT\nVi hoppas att denna Integritetspolicy har gjort det klart hur vi hanterar dina personuppgifter och har svarat på eventuella frågor du hade. Men om du har några frågor är du alltid välkommen att kontakta oss via vår webbplats eller genom att skicka ett e-postmeddelande till [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com). Vi kommer att hantera din begäran så snart som möjligt.\n\n`\n","export const terms_of_use_sv = `14 december, 2022\nOneTwo Analytics AB\n\n# Användarvillkor\n\nVersion: 1.1.5\n\n## 1. Introduktion\nOneTwo Diabetes är en produkt som ges ut av bolaget OneTwo Analytics AB (”OneTwo Analytics”). Dessa användarvillkor (”villkor”) avser användningen av denna produkt, både som mobilapp och på webben. Villkoren gäller mellan OneTwo Analytics och dig som användare när du besöker vår webbplats eller använder någon av våra produkter eller tjänster (tillsammans \"produkterna\").\n\nVi vill betona att vår produkt endast ska användas för att ge dig information för att öka medvetenheten om din diabetes, men den kan inte ersätta samråd med och diagnos av vårdpersonal. Under inga omständigheter ger OneTwo Diabetes rekommendationer om medicinsk terapi eller medicinsk rådgivning av något slag. För frågor om sjukdom och terapi rekommenderar vi att du kontaktar din vårdgivare. Uppgifterna får endast analyseras av dig och din vårdgivare. Inget innehåll - oavsett om det tillhandahålls av OneTwo Diabetes, våra samarbetspartners eller användare - kan vara komplettering eller ersättning av information från vårdgivare.\n\nOneTwo Diabetes ska inte användas i en nödsituation. I händelse av en nödsituation, kontakta närmaste räddningsenhet eller ring 112.\n\nLäs igenom dessa villkor noggrant. Tillgång till och användning av OneTwo Diabetes är villkorat av att du godkänner dessa villkor. Du måste läsa, godkänna och acceptera alla villkor som finns i dessa villkor. Genom att använda vår produkt accepterar du dessa villkor. Om du har några frågor relaterade till dessa villkor är du välkommen att kontakta OneTwo Diabetes på [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\nOneTwo Analytics är ett svenskt företag med huvudkontor på Kungsgatan 84, 112 27 Stockholm. Bolaget arbetar för att förbättra livet för personer med diabetes och stöder vårdgivare som tillhandahåller vård för dessa personer. Produkterna tillhandahåller en sekundär analys av data från en kontinuerlig glukosövervakning på en lämplig enhet (telefon eller läsplatta). Produkten ersätter inte kontinuerlig glukosövervakning i realtid eller vanlig blodglukosövervakning i hemmet. För eventuella medicinska beslut om din hälsa, kontakta din läkare och använd din kontinuerliga glukosmonitor (CGM).\n\n## 2. Ändringar av villkoren\nVi förbehåller oss uttryckligen rätten att göra framtida ändringar av våra villkor när vi anser det vara nödvändigt. Ändringar kan till exempel vara nödvändiga för att uppfylla lagstadgade krav, motsvara tekniska och ekonomiska krav eller för att tillgodose våra användares intressen.\n\nVäsentliga förändringar av våra villkor kommer att informeras till våra användare innan de träder i kraft. Mindre ändringar av våra villkor kommer inte att informeras till våra användare innan de träder i kraft. Vi rekommenderar därför att alla användare regelbundet läser den senaste och aktuella versionen av villkoren.\n\nAnvändningen av vår produkt kräver din registrering hos OneTwo Diabetes i våra kanaler eller där appar tillhandahålls När du har aktiverat vår produkt för första gången måste du registrera dig med en e-postadress och lösenord. Genom att registrera sig godkänner användaren att ingå ett avtal med OneTwo Analytics för användning av vår produkt OneTwo Diabetes. Vi accepterar uttryckligen ett sådant erbjudande genom att aktivera ditt användarkonto.\n\nAktiveringen bekräftas direkt efter registreringen genom att låta dig använda vår produkt. Vi förbehåller oss rätten att avvisa enskilda användare eller deras erbjudande att ingå ett avtal utan att ange skäl. I ett sådant fall kommer alla tillhandahållna användardata att raderas omedelbart.\n\nMed din registrering och aktivering förvärvar du den icke-exklusiva, icke-överförbara men geografiskt obegränsade rätten att spara och använda en kopia av vår produkt eller app för dina egna ändamål inom ramen för dessa villkor. Du kan använda vår gratisprodukt utan tidsbegränsning. Om du har frågor om din användningsperiod eller dess slut, vänligen kontakta [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\nVid registrering bekräftar användaren sitt godkännande och obegränsade godkännande av innehållet i dessa villkor och att informationen är sann, korrekt, uppdaterad och fullständig. Användare är skyldiga att regelbundet uppdatera sin personliga information. OneTwo Diabetes kan ändra eller ta bort all information som den anser vara olämplig eller olaglig eller på annat sätt sannolikt kommer att utsätta OneTwo Diabetes för anspråk från tredje part. Du samtycker till att vi kan vidta åtgärder för att verifiera riktigheten av den information som du har gett oss. Vi förbehåller oss rätten att när som helst kontakta användare för att verifiera registreringsdata och användningsinformation.\n\nOm en användare tillhandahåller falsk, felaktig, inaktuell eller ofullständig information eller om vi har anledning att tro att informationen är falsk, felaktig, inaktuell eller ofullständig, har OneTwo Diabetes rätt att blockera det relevanta användarkontot med omedelbar verkan utan föregående meddelande och förbjuder användningen av vår produkt utan att vara skyldig att betala tillbaka användaren för eventuella kostnader.\n\nDu är ansvarig för att upprätthålla säkerheten för ditt användarkonto. Dessutom är du fullt ansvarig för alla aktiviteter som sker under kontot och alla andra åtgärder som vidtas i samband med kontot.\n\nDu är ansvarig för att vidta rimliga åtgärder för att behålla sekretessen för ditt användarnamn och lösenord. Du måste omedelbart meddela OneTwo Diabetes på [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com) om obehörig användning av din information, ditt konto eller andra säkerhetsöverträdelser. OneTwo Diabetes ansvarar inte för några handlingar eller utelämnanden från dig, inklusive skador av något slag som uppkommit till följd av sådana handlingar eller utelämnanden.\n\nAnvändaren måste skydda sitt användarkonto och registreringsdata från missbruk och användning med bedräglig avsikt. Om det till och med finns misstankar om att det har utsatts för sådana risker måste detta utan dröjsmål meddelas till [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com). Vi har rätt att blockera användarens användarkonto om det används för felaktiga eller bedrägliga avsikter.\n\nVi förbehåller oss rätten att tillfälligt blockera användare när som helst av någon viktig anledning (enligt vår bedömning) eller att permanent utesluta dem från att använda vår produkt.\n\nVad som utgör en viktig orsak och om det anses ha inträffat bedöms av OneTwo Diabetes.\n\n## 3. Användarens ansvar\nVarje användare har rätt och skyldighet att använda vår produkt på egen risk och bekostnad på lämplig teknisk utrustning. De enheter och operativsystem som är kompatibla med produkten finns i appbutikerna eller kan när som helst begäras från [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\nDu är skyldig att använda vår produkt uteslutande i enlighet med dessa villkor och lagstadgade bestämmelser samt undvika all felaktig användning. Meddela oss omedelbart om du upptäcker brott mot de uppgifter som anges i detta avsnitt på [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com).\n\nVarje användare är skyldig att ange sina registreringsuppgifter på ett sanningsenligt sätt, att hålla den uppdaterad och fullständig samt att inte vidarebefordra den till någon tredje part. Personuppgifter måste behandlas konfidentiellt, hanteras noggrant och säkerhetskopieras under eget ansvar. OneTwo Diabetes tar inget ansvar eller andra garantier för förlorade eller skadade data eller innehåll.\n\nInnehåll som foton, bilder, texter, videor eller andra bilder får endast lagras, publiceras, överföras eller distribueras i samband med vår produkt om användaren har rätt att överföra eller använda dem. I alla fall är användning av rasistiskt, stötande, diskriminerande, förtalande, sexuellt, pornografiskt, våldsamt eller annat olagligt innehåll av alla slag alltid förbjudet.\n\nDet är förbjudet att dekryptera, omvandla, dekompilera eller ta isär vår produkt. Varje användare är skyldig att inte genomföra några tekniska eller elektroniska störningar i vår produkt eller nätverk av OneTwo Diabetes (i synnerhet hackningsförsök, brutala kraftattacker, införande av virus, maskar, trojanska hästar, annan skadlig programvara) eller någon form av försök till störningar som kan påverka programvaran eller hårdvaran för OneTwo Diabetes produkt och system.\n\n## 4. OneTwo Analytics ansvar\nOm inte annat anges i dessa villkor är OneTwo Analytics ansvarig och ger garantier enligt lagstadgade bestämmelser. När det gäller användare som inte är konsumenter utesluts ansvar för ekonomiska förluster, följdskador, förlorad vinst och skador till följd av krav från tredje part. Om vårt ansvar är begränsat eller uteslutet i dessa villkor gäller detta också för vikarierade agenter och anslutna företag i OneTwo Analytics.\n\nUtanför tillämpningsområdet för produktansvarslagstiftningen är OneTwo Analytics ansvar begränsat till avsiktliga handlingar och grov vårdslöshet - förutom personskada. Ansvaret för lätt vårdslöshet utesluts när det ställs inför objektiva motiveringar.\n\nOneTwo Analytics ger ingen garanti för att vår produkt ska vara helt tillgänglig utan avbrott och utan fel eller att den nödvändiga programvaran och hårdvaran fungerar utan fel. Vi kan inte heller utesluta möjligheten att data kan spåras, spelas in eller förfalskas av tredje part under dataöverföring via tredjepartssystem, särskilt Internet och andra telenät.\n\nOneTwo Analytics ger ingen garanti för nedladdat innehåll eller material som användarna har fått på grund av att de använder våra produkter. Användaren är ensam ansvarig för all skada som kan skapas i deras IT-system eller enheter eller för förlust av data på grund av nedladdning av material som är associerade med våra produkter.\n\nOneTwo Analytics ansvarar inte för innehåll från tredje part som externa länkar, banners, annan information eller reklamerbjudanden från tredje part som kan placeras som en del av våra produkter. Om vi möjliggör tillgång till erbjudanden från tredje part via meddelanden eller länkar, är OneTwo Analytics inte ansvarig för informationen i den. Resulterande juridiska transaktioner med tredje part leder uteslutande till avtalsförhållanden mellan användaren och relevant tredje part. Vi ger ingen garanti och accepterar inget annat ansvar för produkter från tredje part.\n\nAnvändningen av våra produkter ersätter inte samråd med vårdgivare eller annan medicinsk rådgivning och sker uteslutande på användarens egen risk. Detta gäller användning av data som tillhandahålls som en del av våra produkter inklusive blodglukosresultat, förutsägelser, beräkningar och eventuella rekommendationer. Användaren medger uttryckligen att sådan information kan vara defekt, och OneTwo Analytics tar inget ansvar för att de är korrekta.\n\nI den utsträckning som krävs enligt tillämplig lagstiftning om medicintekniska produkter som reglerar användningen av produkten får produkten endast användas eller användas uteslutande enligt syftet, specifikationerna och applikationsområdena som anges i erbjudandet och användningsvillkoren.\n\n## 5. Tillgängligheten för våra produkter\nVi tillhandahåller våra produkter i varje fall i enlighet med befintliga tekniska, ekonomiska, operativa och organisatoriska möjligheter. OneTwo Analytics kan inte utesluta några avbrott, störningar, förseningar, raderingar, felaktiga överföringar eller lagringsfel i samband med användning av vår produkt eller kommunikation med användare. Vi erbjuder delvis vår produkt i samarbete med tredjepartsleverantörer och är därför också beroende av tillgången till tredjepartsprodukter. Därför accepterar OneTwo Analytics inget ansvar eller skyldighet samt ger inga garantier för att vår produkt tillhandahålls online hela tiden utan avbrott.\n\nFöregående stycke gäller också för begränsningar vid användning av vår produkt på grund av force majeure, strejker, lockouts och officiella instruktioner eller på grund av tekniska ändringar eller underhållsarbete på OneTwo Analytics-systemen. Vid störningar eller fel på vår produkt, vänligen kontakta [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com) när som helst.\n\n## 6. Inköp och betalningar\nVår produkt, OneTwo Diabetes, kan nås eller laddas ner på AppStore och Google Play och kräver ett användarkonto.\n\nVi förbehåller oss uttryckligen rätten att när som helst begränsa gratisprodukter, stoppa dem helt eller ta ut en avgift för dem. Användaren har ingen laglig rättighet att i framtiden få fri användning av enskilda produkter eller delar därav under en viss period.\n\nOneTwo Analytics kan också göra speciella och kostnadsfria erbjudanden som är föremål för ytterligare villkor eller begränsningar. I det avseendet hänvisar vi uttryckligen till eventuella avvikelser från dessa villkor medan annars är hela innehållet i dessa villkor fortfarande tillämpligt. Specialerbjudanden eller gratiserbjudanden kan inte överföras till andra användare.\n\nKonfigurationer och priser på produkten kan ändras när som helst, och OneTwo Analytics har alltid rätt att ändra konfigurationer, avgifter, priser och offert. Du samtycker till sådana ändringar om du inte skriftligen motsätter dig OneTwo Analytics inom sju (7) arbetsdagar efter att du fått ett meddelande från OneTwo Analytics, eller en faktura, som innehåller eller meddelar avgiften och/eller prisändringar.\n\nAlla priser är exklusive moms och du ska betala alla skatter, tullar, avgifter eller andra liknande avgifter som läggs på OneTwo Analytics eller dig själv av någon skattemyndighet (andra än skatter som läggs på OneTwo Analytics intäkter), relaterade till din beställning, såvida du inte har försett OneTwo Analytics med ett lämpligt återförsäljnings- eller undantagscertifikat för leveransplatsen, som är den plats där produkterna används eller utförs. I händelse av lagändringar så att en skatt tas ut som är eller blir återvinningsbar med en därmed ökad kostnad för OneTwo Analytics för att leverera produkten, varigenom och i sådan utsträckning OneTwo Analytics har rätt att höja sina priser därefter och med retroaktiv verkan.\n\n## 7. Uppsägning\nDu kan säga upp ditt avtal och stänga ditt konto hos OneTwo Analytics när som helst, med början den sista dagen i din prenumerationsperiod, genom att skicka ett e-postmeddelande till [support@onetwo-diabetes.com](mailto:support@onetwo-diabetes.com). OneTwo Analytics kan säga upp sin relation med dig eller när som helst säga upp eller avbryta tillgängligheten till produkten, inklusive användning av programvara om du bryter mot dessa villkor och/eller något annat avtal med OneTwo Analytics.\n\n## 8. Tredjepartsleverantörer\nDu hittar våra produkter på vår hemsida (onetwo-diabetes.com) eller i appbutikerna. I allmänhet gäller affärsvillkoren för den relevanta tredjepartsleverantören, som vi inte har något inflytande över. Dessa är inte en del av våra villkor eller vårt avtalsförhållande med dig som användare av våra produkter.\n\nVi arbetar med olika partners för att säkerställa optimal användning av vår produkt. Dessa inkluderar samarbetspartners som levererar oss eller våra användare direkt med vissa produkter (till exempel kontinuerliga glukosmätare). I dessa fall betonar vi uttryckligen de tillämpliga affärsvillkoren för tredjepartsleverantören som du måste acceptera innan du kan förvärva en av våra produkter via en tredjepartsleverantör.\n\n## 9. Integritetsskydd\nVi hänvisar till vårt integritetsmeddelande för detaljerad information om hur vi behandlar dina personuppgifter inklusive tydliga instruktioner om dina rättigheter och vidare hur du kan utöva sådana rättigheter.\n\n## 10. Upphovsrätt\nProgramvaran, koden, metoderna och systemen samt innehållet i våra produkter är skyddade av upphovsrätt och konkurrenslagstiftning och får endast användas av OneTwo Analytics. Vår produkt eller delar därav får inte kopieras, modifieras, reproduceras, publiceras på nytt, publiceras, överföras, säljas, erbjudas till försäljning, säljas på nytt eller användas på något annat sätt utan vårt föregående, skriftliga medgivande. Användare får inte använda varumärken, logotyper, andra kommersiella äganderättigheter eller OneTwo Diabetes varumärkesrättigheter. Om inte annat anges i dessa villkor ägs alla användnings- och exploateringsrättigheter uteslutande av OneTwo Analytics eller ett anslutet företag och det finns ingen licensiering av något slag för våra produkter.\n\nOm detta krävs för det tekniska tillhandahållandet av vår produkt, ger varje användare OneTwo Diabetes en icke-exklusiv, återkallbar men fri, överförbar exploaterings- och användningsrätt, obegränsad med avseende på tid och plats, till innehållet som de genererar, överför, lagrar, eller publicera inom våra produkter. Användning eller exploatering är dock uteslutet om detta oproportionerligt påverkar användarens legitima intressen (till exempel integritetsrättigheter). Vid användning utanför vår produkt, om så är lämpligt, kommer vi att ange att innehållet kommer från användaren. OneTwo Diabetes gör inte anspråk på något ägande av skapat innehåll och kommer inte att ta någon övervakningsfunktion med avseende på innehåll som skapats av användare.\n\n## 11. Ändringar av produkter\nKonfigurationerna och specifikationerna på vår webbplats, inklusive utan begränsning allt innehåll som finns tillgängligt, och produkten kan ändras och/eller uppdateras, enligt OneTwo Diabetes bedömning. Användarna är bundna av sådana ändringar eller uppdateringar.\n\n## 12. Skadestånd\nAnvändaren accepterar fullt ansvar för alla skador och tvister inom och utanför domstol som uppstår på grund av konflikter med andra användare. Användaren medger uttryckligen att OneTwo Analytics under inga omständigheter ansvarar för handlingar eller utelämnanden från andra användare och eventuella skador som uppstår.\n\nI händelse av anspråk mot OneTwo Diabetes från tredje part är användaren skyldig att omedelbart tillhandahålla all information som är tillgänglig för dem på ett sanningsenligt och fullständigt sätt som krävs för att granska, försvara och förhindra anspråk från tredje part.\n\n## 13. Övrigt\nDessa villkor och hela det rättsliga förhållandet mellan OneTwo Diabetes och användaren är underkastad svensk lag, och domstolarna i Sverige har exklusiv behörighet att pröva eventuella anspråk som härrör från dem. Som konsument åtnjuter dock användaren skyddet av obligatoriska bestämmelser i det land där de är bosatta eller vanligt bosatta.\n\nAvtalet mellan användaren och oss, som anges i dessa villkor, är personligt varför användaren inte får överföra dessa till en annan person utan ett föregående skriftligt medgivande från oss. Endast användaren själv kan genomdriva dessa villkor, även om användaren kan genomdriva dem för ett barn som har använt våra produkter i enlighet med dessa villkor.\n\nOneTwo Diabetes kan överföra sina rättigheter och skyldigheter från dessa villkor till ett annat företag eller tredje part. Om enskilda bestämmelser i dessa villkor är eller blir ineffektiva förblir de andra bestämmelserna i dessa villkor som inte påverkas av ogiltigheten giltiga och tillämpliga.\n\n## 14. Viktig anmärkning om minderåriga\nVid registrering bekräftar användaren att den är minst 18 år gammal och att tillämplig lag tillåter den att ingå avtal. Endast personer med laglig behörighet får registrera sig. Minderåriga är endast tillåtna med uttryckligt samtycke från en förälder/vårdnadshavare. Med registreringen förklarar föräldern/vårdnadshavaren att de har rätt att lämna in juridiskt bindande deklarationer i barnets namn.\n`\n","import { Routes, Route, Navigate, useLocation } from \"react-router-dom\"\nimport React, { useEffect } from \"react\"\nimport ReactGA from \"react-ga\"\nimport \"./App.css\"\n\nimport RequireAuth from \"./component/RequireAuth\"\nimport Layout from \"./component/Layout\"\nimport Home from \"./page/Home\"\nimport Settings from \"./page/Settings\"\nimport Missing from \"./page/Missing\"\nimport SignIn from \"./page/SignIn\"\nimport PersistLogin from \"./component/PersistLogin\"\nimport Unauthorized from \"./page/Unauthorized\"\nimport Dexcom from \"./page/Dexcom\"\nimport i18n from \"./i18n\"\nimport MarkdownBox from \"./component/public/MarkDownBox\"\n\nconst getNavigatorLanguage = () => {\n let browserLanguage = \"en\"\n if (navigator.languages && navigator.languages.length) {\n browserLanguage = navigator.languages[0]\n } else {\n browserLanguage =\n navigator.userLanguage ||\n navigator.language ||\n navigator.browserLanguage ||\n \"en\"\n }\n let languageKey = browserLanguage.substring(0, 2)\n if (languageKey === \"en\" || languageKey === \"sv\" || languageKey===\"dk\" || languageKey === \"fi\") return languageKey\n return \"en\"\n}\n\nfunction App() {\n console.log(\n \"Starting app connected to API: \" + process.env.REACT_APP_DDA_API_HOST\n )\n\n useEffect(() => {\n i18n.changeLanguage(getNavigatorLanguage())\n\n ReactGA.initialize(process.env.REACT_APP_DDA_GA_MEASUREMENT_ID || \"G-example\")\n }, [])\n\n const location = useLocation()\n useEffect(() => {\n ReactGA.send({ hitType: \"pageview\", page: location })\n }, [location])\n\n return (\n <Routes>\n <Route element={<PersistLogin />}>\n <Route path=\"/\" element={<Layout />}>\n {/* public routes */}\n <Route path=\"\" element={<Navigate to=\"/sign-in\" />} />\n <Route\n path=\"/privacy/:language\"\n element={<MarkdownBox legalDocumentType={\"privacy\"} />}\n />\n <Route\n path=\"/terms/:language\"\n element={<MarkdownBox legalDocumentType={\"terms\"} />}\n />\n\n <Route path=\"sign-in\" element={<SignIn />} />\n <Route path=\"unauthorized\" element={<Unauthorized />} />\n <Route path=\"dexcom\" element={<Dexcom />} />\n\n {/* protected routes */}\n <Route element={<RequireAuth allowedRoles={[\"USER\"]} />}>\n <Route path=\"home\" element={<Home />} />\n <Route path=\"settings\" element={<Settings />} />\n </Route>\n\n {/* catch all */}\n <Route path=\"*\" element={<Missing />} />\n </Route>\n </Route>\n </Routes>\n )\n}\n\nexport default App\n","import React, { Suspense } from \"react\"\nimport ReactDOM from \"react-dom/client\"\nimport { BrowserRouter as Router, Routes, Route } from \"react-router-dom\"\n\nimport { AuthProvider } from \"./context/AuthProvider\"\nimport { ProfilesProvider } from \"./context/ProfilesProvider\"\n\nimport App from \"./App\"\nimport \"./index.css\"\n\nimport \"./i18n\"\n\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"))\n\nroot.render(\n <Suspense fallback={<div>Loading language...</div>}>\n <Router>\n <ProfilesProvider>\n <AuthProvider>\n <Routes>\n <Route path=\"/*\" element={<App />}></Route>\n </Routes>\n </AuthProvider>\n </ProfilesProvider>\n </Router>\n </Suspense>\n)\n"],"names":["module","exports","utils","require","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","isStandardBrowserEnv","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","value","err","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","protocol","ERR_BAD_REQUEST","send","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","toFormData","Cancel","all","promises","spread","isAxiosError","executor","TypeError","resolvePromise","this","promise","token","then","_listeners","i","l","length","onfulfilled","_resolve","message","reason","throwIfRequested","listener","push","index","splice","source","c","call","ERR_CANCELED","name","inherits","__CANCEL__","InterceptorManager","dispatchRequest","validator","validators","defaults","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","generateHTTPMethod","isForm","code","Error","toJSON","description","number","fileName","lineNumber","columnNumber","stack","descriptors","Object","defineProperties","defineProperty","from","customProps","axiosError","toFlatObject","obj","assign","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","keys","configValue","validateStatus","ERR_BAD_RESPONSE","Math","floor","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","toString","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isFileList","isObjectPayload","isObject","contentType","_FormData","env","FormData","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","arguments","encode","replace","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","exec","callback","arr","formData","convertValue","isTypedArray","Blob","Buffer","build","parentKey","fullKey","endsWith","toArray","el","append","pop","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","schema","allowUnknown","ERR_BAD_OPTION_VALUE","result","ERR_BAD_OPTION","cache","kindOf","str","kindOfTest","getPrototypeOf","isFunction","hasOwnProperty","TypedArray","Uint8Array","constructor","pattern","ArrayBuffer","isView","pipe","product","assignValue","a","b","stripBOM","content","charCodeAt","superConstructor","props","sourceObj","destObj","filter","merged","getOwnPropertyNames","searchString","position","String","lastIndex","canUseDOM","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","define","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","hasOwnConstructor","hasIsPrototypeOf","setProperty","enumerable","configurable","newValue","writable","getProperty","src","copy","copyIsArray","clone","deep","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","style","lineno","column","updatePosition","lines","lastIndexOf","start","node","Position","whitespace","end","errorsList","msg","filename","silent","re","m","comments","rules","comment","pos","declaration","ret","property","decl","decls","declarations","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","object","string","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ca","p","da","Set","ea","fa","ha","add","ia","ja","ka","la","ma","d","f","g","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","isNaN","qa","oa","removeAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","Ma","Na","Oa","prepareStackTrace","set","Reflect","construct","k","displayName","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","get","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","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","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","range","tel","text","time","week","me","ne","oe","event","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","min","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","D","of","has","pf","qf","rf","random","sf","capture","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Jf","queueMicrotask","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","dl","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","setState","nextProps","prevState","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","bodyOpenClassName","portalClassName","_extends","_createClass","descriptor","Constructor","protoProps","staticProps","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","__esModule","newObj","default","_interopRequireWildcard","_safeHTMLElement","_safeHTMLElement2","_reactLifecyclesCompat","_classCallCheck","_possibleConstructorReturn","self","ReferenceError","isReact16","createHTMLElement","getCreatePortal","getParentElement","parentSelector","Modal","_Component","_ref","_temp","_this","_len","_key","__proto__","removePortal","parent","portalRef","portal","renderPortal","defaultStyles","subClass","superClass","setPrototypeOf","_inherits","className","prevParent","nextParent","_","_props","isOpen","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","setElement","propTypes","overlay","htmlOpenClassName","afterOpen","overlayClassName","appElement","SafeHTMLCollection","SafeNodeList","onAfterOpen","onRequestClose","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","preventScroll","aria","role","contentLabel","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","right","bottom","backgroundColor","border","background","WebkitOverflowScrolling","borderRadius","outline","padding","_typeof","focusManager","_scopeTab2","classList","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","_this$props","parentDocument","getElementsByTagName","show","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","deregister","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","requestAnimationFrame","overlayEl","close","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","isTabKey","isEscKey","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","buildClassName","additional","classNames","attributesFromObject","prefix","items","reduce","acc","moveFromContentToOverlay","cancelAnimationFrame","hide","register","_props2","contentStyles","overlayStyles","overlayProps","onMouseDown","contentProps","tabIndex","onKeyDown","onMouseUp","modal","testId","resetState","globalElement","assertNodeList","useElement","validateElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","selector","HTMLCollection","NodeList","_arr","before","after","_i","item","instances","_arr2","_i2","check","_portalOpenInstances","eventType","openInstances","cloneNode","parentElement","htmlElement","cls","htmlClassList","removeClass","_cls","docBodyClassList","at","classString","classListRef","poll","incrementReference","decrementReference","focusLaterElements","handleBlur","handleFocus","toFocus","modalElement","_tabbable","_tabbable2","needToFocus","portalOpenInstances","PortalOpenInstances","openInstance","emit","subscribers","subscriber","_exenv","EE","SafeHTMLElement","HTMLElement","tabbable","head","getActiveElement","checkSafari","shadowRoot","findTabbableDescendants","descendants","finished","tabbableNode","hidesContents","zeroSize","offsetWidth","offsetHeight","getComputedStyle","displayValue","getPropertyValue","scrollWidth","scrollHeight","isNotOverflowing","exception","focusable","isTabIndexNotNaN","rootNode","getRootNode","visible","getAttribute","isTabIndexNaN","_Modal","_Modal2","useWebSocket","webSocketInstance","setters","optionsRef","reconnect","reconnectCount","sendMessage","interval","cancelReconnectOnClose","cancelReconnectOnError","setLastMessage","setReadyState","fromSocketIO","setUpSocketIOPing","onmessage","onMessage","bindMessageHandler","onopen","onOpen","constants_1","OPEN","bindOpenHandler","EventSource","assertIsWebSocket","skipAssert","onclose","onClose","CLOSED","shouldReconnect","reconnectAttempts","_a","reconnectTimeout","reconnectInterval","_b","onReconnectStop","bindCloseHandler","__assign","wasClean","retryOnError","bindErrorHandler","CLOSING","clearInterval","getSubscribers","WebSocket","globals_1","events","ReadyState","globalThis","eventSourceSupported","webSocketRef","startRef","eventSourceOptions","share","clearSocketIoPingInterval","protocols","CONNECTING","attachSharedListeners","addSubscriber","removeSubscriber","hasSubscribers","socketLike","cleanSubscribers","attachListeners","convertedUrl","parsedUrl","parseSocketIOUrl","queryParams","appendQueryParams","url_1","EMPTY_LIST","webSocket","Proxy","isSecure","removedFinalBackSlack","alreadyHasParams","stringified","entries","setInterval","connect","optionsWithEventSource","eventsRef","lastMessage","getWebSocket","handler","lastEvent","getEventSource","emptyEvent","optionsWithSocketIO","sendJsonMessage","socketIOLastMessage","getSocketData","lastJsonMessage","messageQueue","webSocketProxy","optionsCache","readyStateFromUrl","UNINSTANTIATED","stringifiedQueryParams","keep","removeListeners_1","expectClose_1","createOrJoin_1","start_1","getUrl","protectedSetLastMessage","protectedSetReadyState","prev","createOrJoinSocket","skip","resetSubscribers","resetWebSockets","__self","__source","jsx","jsxs","forceUpdate","escape","_status","_result","Children","map","count","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","StyleToObject","output","hasIterator","len","warning","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","leafPrototypes","getProto","ns","def","definition","o","toStringTag","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","_createForOfIteratorHelper","allowArrayLike","it","s","_e","normalCompletion","didErr","step","_e2","_arrayWithHoles","_nonIterableRest","_s","_n","_d","NavigationContext","React","LocationContext","RouteContext","outlet","matches","invariant","cond","matchRoutes","routes","locationArg","basename","stripBasename","parsePath","branches","flattenRoutes","sort","score","siblings","every","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","route","relativePath","caseSensitive","startsWith","joinPaths","computeScore","paramRe","isSplat","segments","initialScore","some","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","paramNames","regexpSource","paramName","compilePath","matcher","captureGroups","splatValue","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","to","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","paths","useHref","useInRouterContext","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","useNavigate","routePathnamesJson","activeRef","navigate","go","OutletContext","_renderMatches","parentMatches","reduceRight","React.createElement","Navigate","_ref2","Outlet","useOutlet","Route","Router","_ref3","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","navigationContext","trailingPathname","Routes","_ref4","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","_parsedLocationArg$pa","useRoutes","createRoutesFromChildren","BrowserRouter","historyRef","createBrowserHistory","history","listen","Link","reloadDocument","rest","internalOnClick","replaceProp","isModifiedEvent","createPath","useLinkClickHandler","useSearchParams","defaultInit","defaultSearchParamsRef","createSearchParams","searchParams","getAll","nextInit","navigateOptions","init","URLSearchParams","AuthContext","AuthProvider","setAuth","ProfilesContext","ProfilesProvider","profiles","setProfiles","_excluded","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_defineProperties","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","sham","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_assertThisInitialized","NEWTAB","OutboundLink","_super","eventLabel","trackerNames","eventMeta","label","sameTarget","normalClick","trackLink","_this$props2","handleClick","rel","redactEmail","smallWords","toTitleCase","title","isLoaded","info","gaCalls","calls","ga","resetCalls","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_redactEmail","internalGa","_window","TestModeAPI","_format","redactingEmail","_str","format","_gaCommand","command","_initialize","gaTrackingID","debug","titleCase","useExistingGa","gaOptions","addTrackers","configsOrTrackingId","trackingId","initialize","testMode","standardImplementation","gaAddress","async","loadGA","alwaysSendToDefaultTracker","_len2","_key2","fieldsObject","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","removeLeadingSlash","timing","category","variable","timingCategory","timingVar","timingValue","timingLabel","nonInteraction","transport","eventCategory","eventAction","eventValue","fatal","exDescription","exFatal","plugin","rawName","trackerName","requireString","execute","pluginName","actionType","_len3","_key3","outboundLink","hitCallback","safetyCallbackCalled","testModeAPI","UnboundOutboundLink","Defaults","allowedRoles","useAuth","roles","find","user","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","arg","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","reverse","skipTempReset","stop","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","namespaces","getI18n","initReactI18next","setDefaults","react","setI18n","_console","alreadyWarned","warnOnce","loadNamespaces","i18n","isInitialized","on","initialized","off","oldI18nextHasLoadedNamespace","lng","languages","fallbackLng","lastLng","loadNotPending","loadState","services","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","resources","partialBundledLanguages","hasLoadedNamespace","isNewerI18next","ignoreJSONStructure","precheck","usePrevious","ignore","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","defaultNS","reportNamespaces","notReadyT","retNotReady","ready","wait","i18nOptions","keyPrefix","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","_useState","_useState2","_slicedToArray","setT","joinedNS","previousJoinedNS","boundReset","store","isInitial","faBars","iconName","icon","faGlobe","faLink","faXmark","faTimes","faLinkSlash","_objectSpread2","_iterableToArrayLimit","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","measure","MutationObserver","_familyProxy","_familyProxy2","_familyProxy3","_familyProxy4","_familyProxy5","_ref$userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILY_CLASSIC","FAMILY_SHARP","FAMILIES","familyProxy","PREFIX_TO_STYLE","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","prefixes","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","attr","coerce","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","_onChangeCb","meaninglessTransform","rotate","flipX","flipY","nextUniqueId","classArray","htmlEscape","joinStyles","styles","styleName","transformIsMeaningful","transform","css","dcp","drc","fp","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","headChildren","childNodes","beforeChild","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","shims","namespace","functions","loaded","domready","toHtml","abstractNodes","_abstractNodes$attrib","attributes","_abstractNodes$childr","joinAttributes","iconFromMapping","mapping","doScroll","subject","thisContext","bindInternal4","toHex","unicode","decoded","counter","extra","ucs2decode","normalizeIcons","icons","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","_LONG_STYLE","_PREFIXES","_PREFIXES_FOR_FAMILY","LONG_STYLE","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","lookup","reducer","alias","aliases","hasRegular","autoFetchSvg","shimLookups","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","canonical","aliasIconName","Library","definitions","additions","_pullDefinitions","longPrefix","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","hookFns","hookFn","callHooks","callProvided","findIconDefinition","iconLookup","library","i2svg","watch","autoReplaceSvgRoot","autoReplace","_icon","canonicalIcon","_prefix","api","noAuto","_params$autoReplaceSv","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","_params$icons","main","mask","maskId","titleId","_params$watchable","watchable","found","isUploadedIcon","attrClass","classes","uploadedIconWidthStyle","asSymbol","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","maybeNotifyMissing","noop$1","preamble","perf","noop$2","isWatched","convertSVG","abstractObj","_params$ceFn","ceFn","mutators","mutation","createComment","outerHTML","nodeAsComment","replaceChild","nest","forSvg","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","op","perform","mutations","callbackFunction","frame","mutator","disableObservation","enableObservation","mo","observe","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","hasBeenReplaced","childList","characterData","subtree","styleParser","classParser","existingPrefix","existingIconName","innerText","ligature","byLigature","Node","TEXT_NODE","attributesParser","extraAttributes","parseMeta","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","hclAdd","suffix","hclRemove","prefixesDomQuery","candidates","resolvedMutations","onNode","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","generateLayersText","computedFontSize","parseInt","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","_content","_hexValueFromContent","cleaned","codePoint","second","first","codePointAt","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","iconIdentifier","iconName4","oldUnicode","newUnicode","byOldUnicode","processable","operations","PseudoElements","pseudoElements2svg","_unwatched","parseTransformString","transformString","parseFloat","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","ALL_SPACE","fillBlack","force","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","matchMedia","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","plugins","unwatch","bootstrap","disconnect","symbolData","nextPlugins","mixoutsTo","registerPlugins","parse$1","camelize","chr","styleToObject","pair","normalizeIconArgs","objectWithKey","FontAwesomeIcon","iconArgs","maskArgs","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","listItem","flip","rotation","pull","swapOpacity","renderedIcon","extraProps","convertCurry","convert","mixins","attrs","_extraProps$style","existingStyle","remaining","STYLES","SIZES","Button","buttonStyle","buttonSize","linkTo","checkButtonStyle","checkButtonSize","BASE_URL","axiosPipeline","logout","localStorage","setItem","Dropdown","changeLanguageHandler","lang","changeLanguage","assets","onetwoLogo","facebook","instagram","onetwo_analytics_logo","click","setClick","buttonVisible","setButton","closeMobileMenu","useProfiles","activeLink","loggedIn","useLogout","signOut","showButton","innerWidth","alt","_toArray","consoleLogger","Logger","concreteLogger","logger","forward","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","cloned","observer","_cloned","defer","res","rej","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","isIE10","userAgentData","chars","ownKeys$1","_objectSpread$1","deepFind","keySeparator","j","mix","joinedPath","ResourceStore","_EventEmitter","addNamespaces","addResource","pack","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","language","interpolation","resolved","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","_this2","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","interpolate","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","option","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","Number","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","other","createRules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","rule","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","prepend","select","getSuffixRetroCompatible","idx","noAbs","abs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","regex","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","elem","ownKeys$4","_objectSpread$4","Formatter","formats","NumberFormat","currency","DateTimeFormat","relativetime","RelativeTimeFormat","list","ListFormat","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","_opt$split2","parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","errors","addResourceBundle","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","modules","external","isClone","defOpts","createClassOnDemand","ClassOrObject","formatter","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","usedCallback","resolvedLanguage","setResolvedLanguage","lngInLngs","hasLanguageSomeTranslations","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","resultKey","_this$translator","_this$translator2","exists","_this6","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","reloadResources","setDefaultNamespace","loadLanguages","OneTwoLink","image","margin","i18next","Loading","checkStyle","SmallLoading","profileId","subtitle","isActive","setActive","inSubmit","confirmCode","successCode","errorCode","dismiss","THIS_YEAR","getFullYear","T1_TREATMENTS","T2_TREATMENTS","TREATMENT_ID","INSULIN_BY_PEN","INSULIN_BY_PUMP","DIET_EXERCISE","ORAL_ANTIDIABETIC_DRUGS","LONG_ACTING_INSULIN","MEAL_INSULIN","GLP1_ANALOGUE","DIABETES_TYPES","DIABETES_TYPE_ID","DIABETES_TYPE1","DIABETES_TYPE2","DIABETES_OTHER","GENDER_TYPES","GENDER_ID","UNKNOWN","MALE","FEMALE","OTHER","getTreatments","treatments","ProfileFormNewProfile","isUser","setIsUser","userFullName","NAME_REGEX","NATIONAL_ID_REGEX","PASSWORD_REGEX","isValidName","isValidYear","year","isValidPassword","FormInput","autoComplete","valid","reference","setFocus","valueChanged","setValueChanged","setClassNames","htmlFor","onChange","onFocus","onBlur","FormSelect","FormCheckBoxes","optionList","FormButton","buttonClass","FormCheckBox","ProfileCardForm","profile","profileForUserExists","updateProfile","createProfile","deleteProfile","setUploadMode","editMode","setEditMode","firstNameRef","lastNameRef","nationalIdRef","diagnoseYearRef","diabetesTypeRef","birthYearRef","genderRef","setFirstNameFocus","setLastNameFocus","setNationalIdFocus","setDiabetesTypeFocus","setDiagnoseYearFocus","setBirthYearFocus","setGenderFocus","initIsUser","relatedUsers","userId","relationId","getIsUser","isNewProfile","setSubmit","submitMessage","setSubmitMessage","setErrorCode","setSuccessCode","setConfirmCode","initfirstName","firstName","initLastName","lastName","initNationalId","nationalId","initDiagnoseYear","conditions","diagnoseYear","initAllTreatments","diabetesType","t1Treatments","t2Treatments","getSelectableTreatments","initTreatments","showNewProfileContext","setFirstName","validFirstName","setValidFirstName","setLastName","validLastName","setValidLastName","setNationalId","validNationalId","setValidNationalId","setDiabetesType","validDiabetesType","setValidDiabetesType","setDiagnoseYear","validDiagnoseYear","setValidDiagnoseYear","birthYear","setBirthYear","validBirthYear","setValidBirthYear","gender","setGender","validGender","setValidGender","allTreatments","setAllTreatments","setTreatments","nationalityId","isValidNationalId","validateAll","getProfileData","treatment","profileData","patient","user_relation","user_id","relation","update","confirmDelete","triggerDelete","newTreatments","DexcomModal","modalIsOpen","closeModal","uploadFile","file","patientId","fileList","resetFileDrop","isLoading","UploadFile","setuploadFilePipelineId","setMounted","setloading","setFileList","isProcessing","setProcessing","uploadResult","setUploadResult","numberOfFiles","numberOfUploadedFiles","errorCount","unhighlight","dropAreaText","getElementById","dropArea","highlight","preventDefaults","handleDrop","handleFiles","files","tempList","_file","fileHandler","accessToken","pipeline_item_id","errorMessage","eventName","addEventListeners","onDrop","clearInput","handlePick","hidden","Upload","uploadModalOpen","setUploadModalOpen","refreshProfile","fetchDataForProfile","deleteDataForProfile","addNightscoutForProfile","authtoken","dataService","removeDataSourceForProfile","dataServiceId","activateDataSourceForProfile","Dexcom","dexcomModalOpen","setDexcomModalOpen","setDexcomLoading","isDexcomLoading","setdexcomActive","dexcomConnected","setdexcomConnected","hasConnection","setDexcomWindow","dexcomURL","setDexcomURL","dexcomWindow","setDexcomRedirectWindow","isButtonDisabled","disableButton","isCloseButtonDisabled","disableCloseButton","websocketMessage","setWebsocketMessage","socketUrl","closeEvent","oauthUrl","handleConnection","Libre","libreModalOpen","setLibreModalOpen","setLibreLoading","isLibreLoading","setlibreActive","libreConnected","setlibreConnected","setLibreWindow","libreURL","setLibreURL","libreWindow","setLibreRedirectWindow","Nightscout","nightscoutModalOpen","setNightscoutModalOpen","nightscoutURL","setNightscoutURL","validNightscoutURL","setValidNightscoutURL","nightscoutToken","setNightscoutToken","validNightscoutToken","NightscoutLink","deleteNightscout","dataServices","nightscout","DataButton","makePrimary","getProfiles","dbPostProfile","dbPutProfile","dbDeleteProfile","getPipelineStatus","pipelineJobid","ProfileCardData","isDataLoading","setDataLoading","isDataErasing","setDataErasing","setNightscoutLoading","dexcomActive","libreActive","nightscoutConnected","setnightscoutConnected","setnightscoutActive","uploadFilePipelineId","setLoading","handleDataConnection","active","pollPipeline","retry","refreshIntervalId","dataFrom","dataTo","deleteData","fetchData","ProfileCard","setActiveCard","cardTitle","uploadMode","patientRelations","po","Title","activeCardId","setActiveCardId","Terms","approved","documentType","typeId","versionApproved","sortedLegal","legalApprovals","getDocs","approvedAt","toLocaleString","dbDeleteAccount","dbPutUser","userData","UserData","formChanged","setFormChanged","formState","setFormState","errorDescription","setErrorDescription","emailRef","phoneRef","phone","setPhone","marketingOptIn","setMarketingOptIn","resetFields","updateUser","Waiting","SubmitComplete","UserDataForm","onSubmit","dbRequestPasswordReset","dbPasswordReset","oob","pwd","oobCode","newPassword","dbChangePassword","oldPassword","ChangePassword","widgetState","setWidgetState","setErrorMessage","oldPasswordRef","newPasswordRef","confirmNewPasswordRef","setOldPassword","setNewPassword","confirmNewPassword","setConfirmNewPassword","changePassword","Done","ChangePassWordForm","deleteAccount","patient_id","ConfirmDelete","DeleteAccountWidget","login","isSuperUser","setSearchParams","passwordRef","headline","setHeadline","setDescription","setEmail","setPassword","useLogin","handleSubmit","handleRequestPasswordReset","handlePasswordReset","ResetRequestComplete","SignInForm","RequestPasswordReset","PasswordReset","refresh","setIsLoading","useRefreshToken","verifyRefreshToken","getItem","each","hasXMLHttpRequest","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","fetch","global","ActiveXObject","fetchNode","addQueryString","queryString","queryStringParams","customHeaders","requestOptions","requestWithFetch","crossDomain","overrideMimeType","requestWithXmlHttpRequest","loadPath","addPath","allowMultiLoading","parsePayload","reloadInterval","credentials","Backend","allOptions","_readAny","loadUrlLanguages","loadUrlNamespaces","maybePromise","isPromise","resolvedLoadPath","loadUrl","parseErr","dataArray","resArray","_this$services","currentLanguage","_construct","Parent","Class","Function","_wrapNativeSuper","_cache","Wrapper","stringifyPosition","point","VFileMessage","place","origin","ruleId","actual","expected","note","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","normalize","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","proc","cwd","isUrl","fileUrlOrPath","urlToPath","URL","third","getPathFromURLPosix","VFile","bufferLike","messages","stored","assertNonEmpty","assertPart","stem","encoding","bail","middleware","called","parameters","fnExpectsCallback","unified","frozen","transformers","pipeline","run","middlewareIndex","middelware","trough","attachers","freezeIndex","Parser","Compiler","freeze","attacher","transformer","POSITIVE_INFINITY","doc","vfile","assertParser","newable","assertCompiler","assertNode","compile","tree","runSync","assertDone","processSync","destination","assertUnfrozen","own","settings","addPlugin","addList","addPreset","isPlainObj","asyncName","looksLikeAVFile","emptyOptions","includeImageAlt","includeHtml","chunkStart","syntaxExtension","extension","constructs","existing","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","factorySpace","max","limit","enter","consume","exit","tokenize","previous","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flow","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","seen","nok","disable","null","blankLine","partial","subtokenize","lineIndex","otherIndex","otherEvent","subevents","more","jumps","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","_gfmTasklistFirstContentOfListItem","chunkInside","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","bufferIndex","tabs","chunk","_index","_bufferIndex","createTokenizer","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","startIndex","startBufferIndex","endIndex","endBufferIndex","sliceChunks","chunkIndex","restore","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","thematicBreak","marker","sequence","initialSize","kind","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","factoryWhitespace","normalizeIdentifier","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","paragraph","heading","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","codeFenced","closeStart","startBefore","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","media","group","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","closingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","codeText","between","tailExitIndex","headEnterIndex","resolveText","extensions","combineExtensions","defaultConstructs","decodeNumericCharacterReference","characterEscapeOrReference","decode","$0","$1","$2","hex","fromMarkdown","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","configure","mdastExtensions","tokenStack","resume","setData","getData","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","depth","referenceType","ancestor","decodeString","fragment","ordered","compiler","postprocess","atCarriageReturn","endPosition","preprocess","combined","remarkParse","normalizeUri","castFactory","typeFactory","tests","checks","anyFactory","propsFactory","visitParents","visitor","factory","parents","visit","subresult","grandparents","toResult","pointStart","pointEnd","clean","footnoteReference","safeId","footnoteOrder","footnoteCounts","reuseCounter","properties","clobberPrefix","dataFootnoteRef","ariaDescribedBy","patch","sup","applyData","revert","subtype","contents","listItemLoose","trimLines","trimLine","blockquote","break","footnote","footnoteById","no","dangerous","imageReference","inlineCode","linkReference","results","loose","listLoose","table","rows","firstRow","tableContent","tableCell","tableRow","align","cellIndex","cells","cell","alignValue","toml","yaml","footnoteDefinition","createState","allowDangerousHtml","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","footnoteBackLabel","unknownHandler","passThrough","augment","hName","hProperties","hChildren","ctx","generated","defaultUnknownHandler","nodes","toHast","foot","listItems","referenceIndex","backReferences","backReference","dataFootnoteBackref","ariaLabel","tailTail","dataFootnotes","footer","bridge","mutate","Schema","normal","space","Info","attribute","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","powers","increment","types","DefinedInfo","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","caseSensitiveTransform","caseInsensitiveTransform","xmlns","xmlnsxlink","xmlnsXLink","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","autoCapitalize","autoPlay","blocking","charSet","cite","cols","colSpan","controls","controlsList","coords","crossOrigin","dateTime","decoding","dir","dirName","download","draggable","encType","enterKeyHint","fetchPriority","formAction","formEncType","formMethod","formNoValidate","formTarget","high","hrefLang","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","isMap","itemId","itemProp","itemRef","itemScope","itemType","loading","loop","low","manifest","maxLength","minLength","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDurationChange","onEmptied","onEnded","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessageError","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","readOnly","referrerPolicy","required","reversed","rowSpan","sandbox","scope","scoped","seamless","sizes","slot","span","spellCheck","srcDoc","srcLang","srcSet","typeMustMatch","useMap","aLink","archive","axis","bgColor","borderColor","bottomMargin","cellPadding","cellSpacing","charOff","classId","clear","codeBase","codeType","compact","declare","face","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","prompt","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillRule","floodColor","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textDecoration","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","defaultAction","descent","diffuseConstant","direction","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","filterRes","filterUnits","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","operator","orient","orientation","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","htmlBase","svgBase","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","dash","cap","kebab","camelcase","hastToReact","uriTransformer","uri","colon","tableElements","childrenToReact","childIndex","toReact","skipHtml","transformLinkUri","parentSchema","addProperty","listDepth","component","components","basic","ReactIs","linkTarget","inline","level","transformImageUri","getInputElement","getElementsBeforeCount","textAlign","isHeader","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","Type","dashes","padRight","padLeft","commas","styleReplacer","parseStyle","deprecated","renderers","astPlugins","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","remarkPlugins","remarkRehype","remarkRehypeOptions","rehypePlugins","hastNode","ccount","character","unicodePunctuationInternal","checkAsRecord","nodeAsRecord","testFunction","looksLikeANode","empty","nodeAsParent","findAndReplace","ignored","pairs","tupleOrList","tuple","toExpression","toFunction","toPairs","pairIndex","grandparent","change","matchObject","inConstruct","notInConstruct","enterLiteralAutolink","enterLiteralAutolinkValue","exitLiteralAutolinkHttp","exitLiteralAutolinkWww","exitLiteralAutolinkEmail","exitLiteralAutolink","transformGfmAutolinkLiterals","findUrl","findEmail","isCorrectDomain","trailExec","trail","closingParenIndex","openingParens","closingParens","splitUrl","atext","enterFootnoteDefinition","enterFootnoteDefinitionLabelString","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","enterFootnoteCall","enterFootnoteCallString","exitFootnoteCallString","exitFootnoteCall","tracker","createTracker","move","subexit","safe","associationId","indentLines","containerFlow","blank","peek","constructsWithoutStrikethrough","enterStrikethrough","exitStrikethrough","handleDelete","containerPhrasing","serialize","defaultStringLength","toAlignment","listInScope","none","_1","unsafe","checkQuote","quote","checkEmphasis","EXIT","formatHeadingAsSetext","literalWithBreak","testOrVisitor","visitorOrReverse","maybeReverse","setext","expression","compilePattern","formatLinkAsAutolink","resourceLink","checkBullet","bullet","checkRule","phrasing","checkStrong","fence","checkFence","fences","formatCodeAsIndented","longestStreak","rank","closeAtx","bulletCurrent","bulletOrdered","checkBulletOrdered","bulletOther","checkBulletOther","useDifferentMarker","bulletLastUsed","firstListItem","indexStack","listItemIndent","checkListItemIndent","incrementListMarker","hasPhrasing","ruleSpaces","repetition","ruleRepetition","checkRuleRepetition","enterTable","_align","inTable","exitTable","enterRow","enterCell","exitCodeText","gfmTableToMarkdown","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","defaultHandlers","serializeData","handleTableRowAsData","handleTableAsData","handleTableCell","matrix","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row","columnIndex","delimiterStart","delimiterEnd","markdownTable","exitCheck","exitParagraphWithTaskListItem","firstParaghraph","listItemWithTaskListItem","checkable","checkbox","wwwPrefix","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trailCharRefStart","trailBracketAfter","trailCharRefInside","emailDomainDotTrail","wwwAutolink","previousWww","previousUnbalanced","wwwAfter","protocolAutolink","previousProtocol","fromCodePoint","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","emailAutolink","gfmAtext","previousEmail","emailDomain","emailDomainAfter","emailDomainDot","_gfmAutolinkLiteralWalkedInto","indent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","gfmFootnotes","replacement","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","gfmStrikethrough","single","singleTilde","strikethrough","EditMap","editMap","addImpl","vecs","gfmTableAlign","inDelimiterRow","alignIndex","tokenizeTable","sizeB","bodyRowStart","headRowBefore","headRowBreak","headRowStart","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","resolveTable","currentTable","currentBody","currentCell","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","flushTableEnd","flushCell","rowEnd","previousCell","groupName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","tasklistCheck","spaceThenNonSpace","gfm","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","tableData","tableHeader","taskListCheckValueChecked","taskListCheckValueUnchecked","gfmToMarkdown","privacy_policy_en","terms_of_use_en","MarkdownBox","legalDocumentType","useParams","legalDocument","onetwoDiabetes","onetwoAnalytics","languageKey","userLanguage","browserLanguage","getNavigatorLanguage","ReactGA","ReactDOM"],"sourceRoot":""}