@signalk/server-admin-ui 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +10 -6
- package/public/144.js +1 -1
- package/public/144.js.map +1 -1
- package/public/41.js +1 -1
- package/public/41.js.LICENSE.txt +6 -0
- package/public/41.js.map +1 -1
- package/public/747.js +3 -0
- package/public/747.js.map +1 -0
- package/public/788.js +2 -0
- package/public/788.js.map +1 -0
- package/public/main.js +1 -1
- package/public/main.js.map +1 -1
- package/public/422.js +0 -3
- package/public/422.js.LICENSE.txt +0 -14
- package/public/422.js.map +0 -1
- package/public/773.js +0 -3
- package/public/773.js.map +0 -1
- package/public/920.js +0 -2
- package/public/920.js.map +0 -1
- /package/public/{773.js.LICENSE.txt → 747.js.LICENSE.txt} +0 -0
package/public/920.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"920.js","mappings":"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","sources":["webpack://@signalk/server-admin-ui/./scss/style.scss?f1a1","webpack://@signalk/server-admin-ui/./scss/core/_dropdown-menu-right.scss?bbe6","webpack://@signalk/server-admin-ui/./src/actions.js","webpack://@signalk/server-admin-ui/./src/components/Header/Header.js","webpack://@signalk/server-admin-ui/./src/components/SidebarFooter/SidebarFooter.js","webpack://@signalk/server-admin-ui/./src/components/SidebarForm/SidebarForm.js","webpack://@signalk/server-admin-ui/./src/components/SidebarHeader/SidebarHeader.js","webpack://@signalk/server-admin-ui/./src/components/SidebarMinimizer/SidebarMinimizer.js","webpack://@signalk/server-admin-ui/./src/components/Sidebar/Sidebar.js","webpack://@signalk/server-admin-ui/./src/components/Aside/Aside.js","webpack://@signalk/server-admin-ui/./src/components/Footer/Footer.js","webpack://@signalk/server-admin-ui/./src/views/Dashboard/Dashboard.js","webpack://@signalk/server-admin-ui/./src/fa-pulse.css?8b92","webpack://@signalk/server-admin-ui/./src/views/Webapps/dynamicutilities.js","webpack://@signalk/server-admin-ui/./src/views/security/EnableSecurity.js","webpack://@signalk/server-admin-ui/./src/views/security/Login.js","webpack://@signalk/server-admin-ui/./src/views/Webapps/Embedded.js","webpack://@signalk/server-admin-ui/./src/views/Webapps/Webapp.js","webpack://@signalk/server-admin-ui/./src/views/Webapps/Webapps.js","webpack://@signalk/server-admin-ui/./src/views/DataBrowser.js","webpack://@signalk/server-admin-ui/./src/views/Playground.js","webpack://@signalk/server-admin-ui/./src/views/appstore/Apps/ThisSession.js","webpack://@signalk/server-admin-ui/./src/views/appstore/Apps/AppsList.js","webpack://@signalk/server-admin-ui/./src/views/appstore/Apps/Apps.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/PluginConfigurationForm.js","webpack://@signalk/server-admin-ui/./src/views/Configuration/EmbeddedPluginConfigurationForm.js","webpack://@signalk/server-admin-ui/./src/views/Configuration/Configuration.js","webpack://@signalk/server-admin-ui/./src/views/security/Settings.js","webpack://@signalk/server-admin-ui/./src/views/security/Users.js","webpack://@signalk/server-admin-ui/./src/views/security/Devices.js","webpack://@signalk/server-admin-ui/./src/views/security/Register.js","webpack://@signalk/server-admin-ui/./src/views/security/AccessRequests.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/VesselConfiguration.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/N2KFilters.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/BasicProvider.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/SourcePriorities.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/ProvidersConfiguration.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/Logging.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/Settings.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/BackupRestore.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/ServerLog.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/ServerUpdate.js","webpack://@signalk/server-admin-ui/./src/containers/Full/Full.js","webpack://@signalk/server-admin-ui/./src/bootstrap.js","webpack://@signalk/server-admin-ui/./scss/core/_dropdown-menu-right.scss","webpack://@signalk/server-admin-ui/./scss/style.scss","webpack://@signalk/server-admin-ui/./src/fa-pulse.css","webpack://@signalk/server-admin-ui/./public_src/img/signal-k-logo-image-text.svg"],"sourcesContent":["import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./style.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./_dropdown-menu-right.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { isUndefined } from 'lodash'\n\nconst authFetch = (url, options) => {\n return fetch(url, {\n ...options,\n credentials: 'include',\n })\n}\n\nexport function logout() {\n return (dispatch) => {\n dispatch({\n type: 'LOGOUT_REQUESTED',\n })\n authFetch('/signalk/v1/auth/logout', {\n method: 'PUT',\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response\n })\n .then((response) => {\n dispatch({\n type: 'LOGOUT_SUCCESS',\n })\n })\n .catch((error) => {\n dispatch({\n type: 'LOGOUT_FAILED',\n data: error,\n })\n })\n .then(() => {\n fetchLoginStatus(dispatch)\n })\n }\n}\n\nexport async function login(\n dispatch,\n username,\n password,\n rememberMe,\n callback\n) {\n const payload = {\n username: username,\n password: password,\n rememberMe: rememberMe,\n }\n const request = await authFetch('/signalk/v1/auth/login', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n })\n\n const response = await request.json()\n if (request.status !== 200) {\n dispatch({\n type: 'LOGIN_FAILURE',\n data: response.message,\n })\n callback(response.message)\n } else if (response) {\n fetchAllData(dispatch)\n dispatch({\n type: 'LOGIN_SUCCESS',\n })\n callback(null)\n }\n}\n\nexport function enableSecurity(dispatch, userId, password, callback) {\n var payload = {\n userId: userId,\n password: password,\n type: 'admin',\n }\n fetch(`${window.serverRoutesPrefix}/enableSecurity`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }).then((response) => {\n if (response.status != 200) {\n response.text().then((text) => {\n callback(text)\n })\n } else {\n callback(null)\n }\n })\n}\n\nexport function restart() {\n return (dispatch) => {\n if (confirm('Are you sure you want to restart?')) {\n fetch(`${window.serverRoutesPrefix}/restart`, {\n credentials: 'include',\n method: 'PUT',\n }).then(() => {\n dispatch({ type: 'SERVER_RESTART' })\n })\n }\n }\n}\n\nexport const buildFetchAction =\n (endpoint, type, prefix) => async (dispatch) => {\n const response = await authFetch(\n `${isUndefined(prefix) ? window.serverRoutesPrefix : prefix}${endpoint}`\n )\n\n if (response.status === 200) {\n const data = await response.json()\n dispatch({\n type,\n data,\n })\n }\n }\n\nexport const fetchLoginStatus = buildFetchAction(\n '/loginStatus',\n 'RECEIVE_LOGIN_STATUS'\n)\nexport const fetchPlugins = buildFetchAction('/plugins', 'RECEIVE_PLUGIN_LIST')\nexport const fetchWebapps = buildFetchAction('/webapps', 'RECEIVE_WEBAPPS_LIST')\nexport const fetchAddons = buildFetchAction('/addons', 'RECEIVE_ADDONS_LIST')\nexport const fetchApps = buildFetchAction(\n '/appstore/available',\n 'RECEIVE_APPSTORE_LIST'\n)\nexport const fetchAccessRequests = buildFetchAction(\n '/security/access/requests',\n 'ACCESS_REQUEST'\n)\nexport const fetchServerSpecification = buildFetchAction(\n '/signalk',\n 'RECEIVE_SERVER_SPEC',\n ''\n)\n\nexport function fetchAllData(dispatch) {\n fetchPlugins(dispatch)\n fetchWebapps(dispatch)\n fetchAddons(dispatch)\n fetchApps(dispatch)\n fetchLoginStatus(dispatch)\n fetchServerSpecification(dispatch), fetchAccessRequests(dispatch)\n}\n\nexport function openServerEventsConnection(dispatch, isReconnect) {\n const proto = window.location.protocol == 'https:' ? 'wss' : 'ws'\n const ws = new WebSocket(\n proto +\n '://' +\n window.location.host +\n `/signalk/v1/stream?serverevents=all&subscribe=none&sendMeta=all`\n )\n\n ws.onmessage = function (event) {\n const serverEvent = JSON.parse(event.data)\n if (serverEvent.type) {\n dispatch(serverEvent)\n } else if (serverEvent.name) {\n ws.skSelf = serverEvent.self\n } else if (ws.messageHandler) {\n ws.messageHandler(serverEvent)\n }\n }\n ws.onclose = () => {\n console.log('closed')\n dispatch({\n type: 'WEBSOCKET_CLOSE',\n })\n }\n ws.onerror = (error) => {\n dispatch({\n type: 'WEBSOCKET_ERROR',\n })\n }\n ws.onopen = () => {\n console.log('connected')\n dispatch({\n type: 'WEBSOCKET_OPEN',\n data: ws,\n })\n if (isReconnect) {\n window.location.reload()\n }\n }\n}\n","import React, { Component } from 'react'\nimport {\n Nav,\n NavItem,\n NavLink,\n NavbarToggler,\n NavbarBrand,\n DropdownItem,\n DropdownMenu,\n DropdownToggle,\n Dropdown,\n} from 'reactstrap'\nimport { connect } from 'react-redux'\nimport { logout, restart, login } from '../../actions'\n\nclass Header extends Component {\n constructor(props) {\n super(props)\n\n this.toggleDropdown = this.toggleDropdown.bind(this)\n this.state = {\n dropdownOpen: false,\n }\n }\n\n componentDidMount() {\n window.addEventListener('sidebar:hide', () => {\n document.body.classList.toggle('sidebar-hidden', true)\n document.body.classList.toggle('sidebar-mobile-show', false)\n })\n\n window.addEventListener('popstate', () => {\n document.body.classList.toggle('sidebar-mobile-show', false)\n })\n }\n\n toggleDropdown() {\n this.setState({\n dropdownOpen: !this.state.dropdownOpen,\n })\n }\n\n sidebarToggle(e) {\n e.preventDefault()\n document.body.classList.toggle('sidebar-hidden')\n }\n\n sidebarMinimize(e) {\n e.preventDefault()\n document.body.classList.toggle('sidebar-minimized')\n }\n\n mobileSidebarToggle(e) {\n e.preventDefault()\n document.body.classList.toggle('sidebar-mobile-show')\n }\n\n asideToggle(e) {\n e.preventDefault()\n document.body.classList.toggle('aside-menu-hidden')\n }\n\n render() {\n return (\n <header className=\"app-header navbar\">\n <NavbarToggler className=\"d-lg-none\" onClick={this.mobileSidebarToggle}>\n <span className=\"navbar-toggler-icon\" />\n </NavbarToggler>\n <NavbarBrand href=\"#\" />\n <NavbarToggler\n className=\"d-md-down-none mr-auto\"\n onClick={this.sidebarToggle}\n >\n <span className=\"navbar-toggler-icon\" />\n </NavbarToggler>\n <Nav className=\"ml-auto\" navbar>\n <NavItem className=\"d-md-down-none px-3\">\n {this.props.loginStatus.status === 'loggedIn' &&\n this.props.loginStatus.userLevel == 'admin' && (\n <NavLink href=\"#/\" onClick={this.props.restart}>\n {this.props.restarting ? (\n <i className=\"fa fa-circle-o-notch text-danger fa-spin\" />\n ) : (\n <i className=\"fa fa-circle-o-notch\" />\n )}{' '}\n Restart\n </NavLink>\n )}\n </NavItem>\n {this.props.loginStatus.status === 'loggedIn' && (\n <NavItem className=\"d-md-down-none px-3\">\n <NavLink href=\"#/\" onClick={this.props.logout}>\n <i className=\"fa fa-lock\" /> Logout\n </NavLink>\n </NavItem>\n )}\n {this.props.loginStatus.status !== 'loggedIn' &&\n this.props.loginStatus.authenticationRequired && (\n <NavItem className=\"d-md-down-none px-3\">\n <NavLink href=\"#/login\">\n <i className=\"fa fa-lock\" /> Login\n </NavLink>\n </NavItem>\n )}\n <div className=\"d-lg-none\">\n <Dropdown\n nav\n isOpen={this.state.dropdownOpen}\n toggle={this.toggleDropdown}\n >\n <DropdownToggle nav>\n <i className=\"icon-menu\" />\n </DropdownToggle>\n <DropdownMenu right>\n {this.props.loginStatus.status === 'loggedIn' &&\n this.props.loginStatus.userLevel == 'admin' && (\n <DropdownItem onClick={this.props.restart}>\n {this.props.restarting ? (\n <i className=\"fa fa-circle-o-notch text-danger fa-spin\" />\n ) : (\n <i className=\"fa fa-circle-o-notch\" />\n )}{' '}\n Restart\n </DropdownItem>\n )}\n {this.props.loginStatus.status === 'loggedIn' && (\n <DropdownItem onClick={this.props.logout}>\n <i className=\"fa fa-lock\" /> Logout\n </DropdownItem>\n )}\n {this.props.loginStatus.status !== 'loggedIn' &&\n this.props.loginStatus.authenticationRequired && (\n <DropdownItem href=\"#/login\">\n <i className=\"fa fa-lock\" /> Login\n </DropdownItem>\n )}\n </DropdownMenu>\n </Dropdown>\n </div>\n </Nav>\n </header>\n )\n }\n}\n\nexport default connect(\n ({ loginStatus, restarting }) => ({ loginStatus, restarting }),\n { logout, restart, login }\n)(Header)\n","import React, { Component } from 'react'\n\nclass SidebarFooter extends Component {\n render() {\n return null\n // Uncomment following code lines to add Sidebar Footer\n // return (\n // <div className=\"sidebar-footer\"></div>\n // )\n }\n}\n\nexport default SidebarFooter\n","import React, { Component } from 'react'\n\nclass SidebarForm extends Component {\n render() {\n return null\n // Uncomment following code lines to add Sidebar Form\n // return (\n // <div className=\"sidebar-form\"></div>\n // )\n }\n}\n\nexport default SidebarForm\n","import React, { Component } from 'react'\n\nclass SidebarHeader extends Component {\n render() {\n return null\n // Uncomment following code lines to add Sidebar Header\n // return (\n // <div className=\"sidebar-header\"></div>\n // )\n }\n}\n\nexport default SidebarHeader\n","import React, { Component } from 'react'\n\nclass SidebarMinimizer extends Component {\n sidebarMinimize() {\n document.body.classList.toggle('sidebar-minimized')\n }\n\n brandMinimize() {\n document.body.classList.toggle('brand-minimized')\n }\n\n render() {\n return (\n <button\n className=\"sidebar-minimizer\"\n type=\"button\"\n onClick={(event) => {\n this.sidebarMinimize()\n this.brandMinimize()\n }}\n />\n )\n }\n}\n\nexport default SidebarMinimizer\n","import React, { Component } from 'react'\nimport { NavLink } from 'react-router-dom'\nimport { Badge, Nav, NavItem, NavLink as RsNavLink } from 'reactstrap'\nimport { connect } from 'react-redux'\nimport classNames from 'classnames'\nimport SidebarFooter from './../SidebarFooter/SidebarFooter'\nimport SidebarForm from './../SidebarForm/SidebarForm'\nimport SidebarHeader from './../SidebarHeader/SidebarHeader'\nimport SidebarMinimizer from './../SidebarMinimizer/SidebarMinimizer'\n\nclass Sidebar extends Component {\n handleClick(e) {\n e.preventDefault()\n e.target.parentElement.classList.toggle('open')\n }\n\n activeRoute(routeName, props) {\n // return this.props.location.pathname.indexOf(routeName) > -1 ? 'nav-item nav-dropdown open' : 'nav-item nav-dropdown';\n return props.location.pathname.indexOf(routeName) > -1\n ? 'nav-item nav-dropdown open'\n : 'nav-item nav-dropdown'\n }\n\n render() {\n const props = this.props\n const activeRoute = this.activeRoute\n const handleClick = this.handleClick\n\n // badge addon to NavItem\n const badge = (badge) => {\n if (badge) {\n const classes = classNames(badge.class)\n return (\n <Badge className={classes} color={badge.variant}>\n {badge.text}\n </Badge>\n )\n }\n }\n\n // simple wrapper for nav-title item\n const wrapper = (item) => {\n return item.wrapper && item.wrapper.element\n ? React.createElement(\n item.wrapper.element,\n item.wrapper.attributes,\n item.name\n )\n : item.name\n }\n\n // nav list section title\n const title = (title, key) => {\n const classes = classNames('nav-title', title.class)\n return (\n <li key={key} className={classes}>\n {wrapper(title)}{' '}\n </li>\n )\n }\n\n // nav list divider\n const divider = (divider, key) => {\n const classes = classNames('divider', divider.class)\n return <li key={key} className={classes} />\n }\n\n // nav item with nav link\n const navItem = (item, key) => {\n const classes = {\n item: classNames(item.class),\n link: classNames(\n 'nav-link',\n item.variant ? `nav-link-${item.variant}` : ''\n ),\n icon: classNames(item.icon),\n }\n return navLink(item, key, classes)\n }\n\n // nav link\n const navLink = (item, key, classes) => {\n const url = item.url ? item.url : ''\n return (\n <NavItem key={key} className={classes.item}>\n {isExternal(url) ? (\n <RsNavLink href={url} className={classes.link}>\n <i className={classes.icon} />\n {item.name}\n {badge(item.badge)}\n </RsNavLink>\n ) : (\n <NavLink to={url} className={classes.link} activeClassName=\"active\">\n <i className={classes.icon} />\n {item.name}\n {badge(item.badge)}\n </NavLink>\n )}\n </NavItem>\n )\n }\n\n // nav dropdown\n const navDropdown = (item, key) => {\n return (\n <li key={key} className={activeRoute(item.url, props)}>\n <a\n className=\"nav-link nav-dropdown-toggle\"\n href=\"#\"\n onClick={handleClick.bind(this)}\n >\n <i className={item.icon} />\n {item.name}\n </a>\n <ul className=\"nav-dropdown-items\">{navList(item.children)}</ul>\n </li>\n )\n }\n\n // nav type\n const navType = (item, idx) =>\n item.title\n ? title(item, idx)\n : item.divider\n ? divider(item, idx)\n : item.children\n ? navDropdown(item, idx)\n : navItem(item, idx)\n\n // nav list\n const navList = (items) => {\n return items.map((item, index) => navType(item, index))\n }\n\n const isExternal = (url) => {\n const link = url ? url.substring(0, 4) : ''\n return link === 'http'\n }\n\n // sidebar-nav root\n return (\n <div className=\"sidebar\">\n <SidebarHeader />\n <SidebarForm />\n <nav className=\"sidebar-nav\">\n <Nav>{navList(props.items)}</Nav>\n </nav>\n <SidebarFooter />\n <SidebarMinimizer />\n </div>\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n var appUpdates = state.appStore.updates.length\n var updatesBadge = null\n var availableBadge = null\n var serverUpdateBadge = null\n var accessRequestsBadge = null\n\n if (appUpdates > 0) {\n updatesBadge = {\n variant: 'danger',\n text: `${appUpdates}`,\n color: 'danger',\n }\n }\n\n if (state.accessRequests.length > 0) {\n accessRequestsBadge = {\n variant: 'danger',\n text: `${state.accessRequests.length}`,\n color: 'danger',\n }\n }\n\n if (!state.appStore.storeAvailable) {\n updatesBadge = availableBadge = {\n variant: 'danger',\n text: 'OFFLINE',\n }\n }\n\n if (state.appStore.serverUpdate) {\n serverUpdateBadge = {\n variant: 'danger',\n text: state.appStore.serverUpdate,\n color: 'danger',\n }\n }\n\n var result = {\n items: [\n {\n name: 'Dashboard',\n url: '/dashboard',\n icon: 'icon-speedometer',\n },\n {\n name: 'Webapps',\n url: '/webapps',\n icon: 'icon-grid',\n },\n {\n name: 'Data Browser',\n url: '/databrowser',\n icon: 'icon-folder',\n },\n ],\n }\n\n if (\n !state.loginStatus.authenticationRequired ||\n state.loginStatus.userLevel == 'admin'\n ) {\n const openPlugin = localStorage.getItem('admin.v1.plugins.openPlugin')\n result.items.push.apply(result.items, [\n {\n name: 'Appstore',\n url: '/appstore',\n icon: 'icon-basket',\n children: [\n {\n name: 'Available',\n url: '/appstore/apps',\n badge: availableBadge,\n },\n {\n name: 'Installed',\n url: '/appstore/installed',\n },\n {\n name: 'Updates',\n url: '/appstore/updates',\n badge: updatesBadge,\n },\n ],\n },\n {\n name: 'Server',\n url: '/serverConfiguration',\n icon: 'icon-settings',\n children: [\n {\n name: 'Settings',\n url: '/serverConfiguration/settings',\n },\n {\n name: 'Data Connections',\n url: '/serverConfiguration/connections/-',\n },\n {\n name: 'Plugin Config',\n url: '/serverConfiguration/plugins/' + (openPlugin || '-'),\n },\n {\n name: 'Server Logs',\n url: '/serverConfiguration/log',\n },\n {\n name: 'Update',\n url: '/serverConfiguration/update',\n badge: serverUpdateBadge,\n },\n {\n name: 'Data Fiddler',\n url: '/serverConfiguration/datafiddler',\n },\n {\n name: 'Backup/Restore',\n url: '/serverConfiguration/backuprestore',\n },\n ],\n },\n ])\n }\n\n if (\n state.loginStatus.authenticationRequired === false ||\n state.loginStatus.userLevel == 'admin'\n ) {\n var security = {\n name: 'Security',\n url: '/security',\n icon: 'icon-shield',\n badge: accessRequestsBadge,\n children: [\n {\n name: 'Settings',\n url: '/security/settings',\n },\n {\n name: 'Users',\n url: '/security/users',\n },\n ],\n }\n if (state.loginStatus.allowDeviceAccessRequests) {\n security.children.push({\n name: 'Devices',\n url: '/security/devices',\n })\n }\n if (\n state.loginStatus.allowNewUserRegistration ||\n state.loginStatus.allowDeviceAccessRequests\n ) {\n security.children.push({\n name: 'Access Requests',\n url: '/security/access/requests',\n badge: accessRequestsBadge,\n })\n }\n result.items.push(security)\n }\n\n result.items.push({\n name: 'Documentation',\n url: `${window.location.protocol}//${window.location.host}/documentation`,\n icon: 'icon-book-open',\n })\n\n result.items.push({\n name: 'OpenApi',\n url: `${window.location.protocol}//${window.location.host}/doc/openapi`,\n icon: 'icon-energy',\n })\n\n return result\n}\n\nconst pluginMenuItems = (plugins) => {\n return plugins\n ? plugins.map((pluginData) => {\n return {\n name: pluginData.name,\n url: `/plugins/${pluginData.id}`,\n }\n })\n : []\n}\n\nexport default connect(mapStateToProps)(Sidebar)\n","import React, { Component } from 'react'\n\nclass Aside extends Component {\n render() {\n return <aside className=\"aside-menu\">{/* Aside Menu */}</aside>\n }\n}\n\nexport default Aside\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport { Link } from 'react-router-dom'\n\nclass Footer extends Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n const { name, mmsi, uuid } = this.props.vesselInfo\n return (\n <footer className=\"app-footer\">\n <span>\n <a href=\"https://github.com/SignalK/signalk-server-node/\">\n Signal K Server\n </a>\n </span>\n {typeof this.props.serverSpecification.server !== 'undefined' && (\n <span>\n version {this.props.serverSpecification.server.version}\n </span>\n )}\n <span>\n {' '}\n <a href=\"https://opencollective.com/signalk\">Sponsor Signal K</a>\n </span>\n {typeof this.props.appStore.serverUpdate !== 'undefined' && (\n <span>\n <Link to=\"/serverConfiguration/update\">\n (version {this.props.appStore.serverUpdate} is available)\n </Link>\n </span>\n )}\n {this.props.loginStatus.status === 'loggedIn' && (\n <span className=\"ml-auto\">\n Logged in as {this.props.loginStatus.username}\n </span>\n )}\n - {name || mmsi || uuid}\n </footer>\n )\n }\n}\n\nexport default connect(\n ({ loginStatus, serverSpecification, appStore, vesselInfo }) => ({\n loginStatus,\n serverSpecification,\n appStore,\n vesselInfo,\n })\n)(Footer)\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport {\n Card,\n CardBody,\n CardHeader,\n Progress,\n Row,\n Col,\n Table,\n} from 'reactstrap'\nimport '../../fa-pulse.css'\n\nconst Dashboard = (props) => {\n const {\n deltaRate,\n numberOfAvailablePaths,\n wsClients,\n providerStatistics,\n uptime,\n } = props.serverStatistics || {\n deltaRate: 0,\n numberOfAvailablePaths: 0,\n wsClients: 0,\n providerStatistics: {},\n uptime: '',\n }\n const providerStatus = props.providerStatus || []\n const errorCount = providerStatus.filter((s) => s.type === 'error').length\n const uptimeD = Math.floor(uptime / (60 * 60 * 24))\n const uptimeH = Math.floor((uptime % (60 * 60 * 24)) / (60 * 60))\n const uptimeM = Math.floor((uptime % (60 * 60)) / 60)\n let errors = ''\n if (errorCount > 0) {\n errors = `(${errorCount} errors)`\n }\n\n const getLinkType = (providerId) => {\n try {\n return providerStatus.find((item) => item.id === providerId).statusType\n } catch (err) {\n return 'provider'\n }\n }\n\n const inputPulseIconClass = (providerStats) => {\n return (\n 'icon-login' +\n (providerStats.deltaRate > 50\n ? ' text-primary fa-pulse-fast'\n : providerStats.deltaRate > 0\n ? ' text-primary fa-pulse'\n : '')\n )\n }\n\n const outputPulseIconClass = (providerStats) => {\n return (\n 'icon-logout' +\n (providerStats.writeRate > 50\n ? ' text-primary fa-pulse-fast'\n : providerStats.writeRate > 0\n ? ' text-primary fa-pulse'\n : '')\n )\n }\n\n const renderActivity = (providerId, providerStats, linkType) => {\n return (\n <li key={providerId} onClick={() => props.history.push(`/dashboard`)}>\n <i\n className={inputPulseIconClass(providerStats)}\n style={{\n color: providerStats.deltaCount ? '#039' : 'lightblue',\n }}\n />\n <i\n className={outputPulseIconClass(providerStats)}\n style={{\n transform: 'scaleX(-1)',\n color: providerStats.writeCount ? '#039' : 'lightblue',\n }}\n />\n <span className=\"title\">\n {linkType === 'plugin'\n ? pluginNameLink(providerId)\n : providerIdLink(providerId)}\n </span>\n {providerStats.writeRate > 0 && (\n <span className=\"value\">\n {' '}\n {providerStats.writeRate}{' '}\n <span className=\"text-muted small\">{'msg/s'}</span>{' '}\n </span>\n )}\n {providerStats.deltaRate > 0 && providerStats.writeRate > 0 && (\n <span className=\"value\">\n <span className=\"text-muted small\">{','}</span>\n  \n </span>\n )}\n {providerStats.deltaRate > 0 && (\n <span className=\"value\">\n {' '}\n {providerStats.deltaRate}{' '}\n <span className=\"text-muted small\">\n ({((providerStats.deltaRate / deltaRate) * 100).toFixed(0)}\n %)\n </span>{' '}\n <span className=\"text-muted small\">{'deltas/s'}</span>{' '}\n </span>\n )}\n <div className=\"bars\">\n <Progress\n className=\"progress-xs\"\n color=\"warning\"\n value={(providerStats.deltaRate / deltaRate) * 100}\n />\n </div>\n </li>\n )\n }\n\n const renderStatus = (status, statusClass, lastError) => {\n return (\n <tr\n key={status.id}\n onClick={() => {\n props.history.push(\n '/serverConfiguration/' +\n (status.statusType === 'plugin' ? 'plugins/' : 'connections/') +\n status.id\n )\n }}\n >\n <td>\n {status.statusType === 'plugin'\n ? pluginNameLink(status.id)\n : providerIdLink(status.id)}\n </td>\n <td>\n <p className=\"text-danger\">{lastError}</p>\n </td>\n <td>\n <p className={statusClass}>\n {(status.message || '').substring(0, 80)}\n {status.message.length > 80 ? '...' : ''}\n </p>\n </td>\n </tr>\n )\n }\n\n return (\n <div className=\"animated fadeIn\">\n {props.websocketStatus === 'open' && (\n <div>\n <Card>\n <CardHeader>Stats</CardHeader>\n <CardBody>\n <Row>\n <Col xs=\"12\" md=\"6\">\n <div className=\"callout callout-primary\">\n <small className=\"text-muted\">\n Total server Signal K throughput (deltas/second)\n </small>\n <br />\n <strong className=\"h4\">{deltaRate.toFixed(1)}</strong>\n </div>\n <div className=\"callout callout-primary\">\n <small className=\"text-muted\">\n Number of Signal K Paths\n </small>\n <br />\n <strong className=\"h4\">{numberOfAvailablePaths}</strong>\n </div>\n <div className=\"callout callout-primary\">\n <small className=\"text-muted\">\n Number of WebSocket Clients\n </small>\n <br />\n <strong className=\"h4\">{wsClients}</strong>\n </div>\n <div className=\"callout callout-primary\">\n <small className=\"text-muted\">Uptime</small>\n <br />\n <strong className=\"h5\">\n {uptimeD} days, {uptimeH} hours, {uptimeM} minutes\n </strong>\n </div>\n </Col>\n <Col xs=\"12\" md=\"6\">\n <div className=\"text-muted\" style={{ fontSize: '1rem' }}>\n Connections activity\n </div>\n <ul className=\"horizontal-bars type-2\">\n {Object.keys(providerStatistics || {})\n .sort()\n .map((providerId) => {\n if (getLinkType(providerId) === 'provider') {\n return renderActivity(\n providerId,\n providerStatistics[providerId],\n 'provider'\n )\n }\n })}\n </ul>\n <br></br>\n <div className=\"text-muted\" style={{ fontSize: '1rem' }}>\n {Object.keys(providerStatistics || {}).some(\n (providerId) => getLinkType(providerId) === 'plugin'\n )\n ? 'Plugins activity'\n : null}\n </div>\n <ul className=\"horizontal-bars type-2\">\n {Object.keys(providerStatistics || {})\n .sort()\n .map((providerId) => {\n if (getLinkType(providerId) === 'plugin') {\n return renderActivity(\n providerId,\n providerStatistics[providerId],\n 'plugin'\n )\n }\n })}\n </ul>\n </Col>\n </Row>\n </CardBody>\n </Card>\n\n <Card>\n <CardHeader>\n Connection & Plugin Status <p className=\"text-danger\">{errors}</p>\n </CardHeader>\n <CardBody>\n <Row>\n <Col xs=\"12\" md=\"12\">\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Id</th>\n <th>Last Error</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n {providerStatus.map((status) => {\n const statusClasses = {\n status: 'text-success',\n warning: 'text-warning',\n error: 'text-danger',\n }\n const statusClass = statusClasses[status.type]\n const lastError =\n status.lastError && status.lastError != status.message\n ? status.lastErrorTimeStamp +\n ': ' +\n status.lastError\n : ''\n return renderStatus(status, statusClass, lastError)\n })}\n </tbody>\n </Table>\n </Col>\n </Row>\n </CardBody>\n </Card>\n </div>\n )}\n\n {props.websocketStatus === 'closed' && (\n <Card className=\"border-warning\">\n <CardHeader>Not connected to the server</CardHeader>\n </Card>\n )}\n </div>\n )\n}\n\nfunction pluginNameLink(id) {\n return <a href={'#/serverConfiguration/plugins/' + id}>{id}</a>\n}\n\nfunction providerIdLink(id) {\n if (id === 'defaults') {\n return <a href={'#/serverConfiguration/settings'}>{id}</a>\n } else if (id.startsWith('ws.')) {\n return <a href={'#/security/devices'}>{id}</a>\n } else {\n return <a href={'#/serverConfiguration/connections/' + id}>{id}</a>\n }\n}\n\nexport default connect(\n ({ serverStatistics, websocketStatus, providerStatus }) => ({\n serverStatistics,\n websocketStatus,\n providerStatus,\n })\n)(Dashboard)\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!./fa-pulse.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react'\n\nexport const toLazyDynamicComponent = (moduleName, component) =>\n React.lazy(\n () =>\n new Promise((resolve, reject) => {\n const container = window[toSafeModuleId(moduleName)]\n if (container === undefined) {\n console.error(`Could not load module ${moduleName}`)\n resolve(import('./loadingerror'))\n return\n }\n container.init(__webpack_share_scopes__.default)\n try {\n const module = container.get(component)\n module.then((factory) => {\n resolve(factory())\n })\n } catch (ex) {\n console.error(moduleName)\n reject(ex)\n }\n })\n )\n\nexport const toSafeModuleId = (moduleName) => moduleName.replace(/[-@/]/g, '_')\n\nexport const APP_PANEL = './AppPanel'\nexport const ADDON_PANEL = './AddonPanel'\nexport const PLUGIN_CONFIG_PANEL = './PluginConfigurationPanel'\n","import React, { Component } from 'react'\nimport {\n Form,\n Container,\n Row,\n Col,\n CardGroup,\n Card,\n CardBody,\n Button,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n} from 'reactstrap'\nimport { connect } from 'react-redux'\nimport { enableSecurity, fetchLoginStatus } from '../../actions'\nimport Login from './Login'\n\nclass EnableSecurity extends Component {\n constructor(props) {\n super(props)\n this.state = {\n enabling: false,\n errorMessage: null,\n }\n this.handleInputChange = this.handleInputChange.bind(this)\n this.handleInputKeyUp = this.handleInputKeyUp.bind(this)\n this.handleClick = this.handleClick.bind(this)\n }\n\n handleClick(event) {\n const { dispatch } = this.props\n this.setState({ enabling: true })\n enableSecurity(\n dispatch,\n this.state.username,\n this.state.password,\n (error) => {\n fetchLoginStatus(dispatch)\n this.setState({\n enabling: false,\n errorMessage: error,\n })\n }\n )\n }\n\n handleInputChange(event) {\n this.setState({ [event.target.name]: event.target.value })\n }\n handleInputKeyUp(event) {\n if (event.key === 'Enter') {\n this.handleClick()\n }\n }\n\n render() {\n return (\n <div>\n {this.props.loginStatus.authenticationRequired &&\n !this.props.loginStatus.noUsers && <Login />}\n {(this.props.loginStatus.authenticationRequired === false ||\n this.props.loginStatus.noUsers === true) && (\n <Container>\n <Row className=\"justify-content-center\">\n <Col md=\"8\">\n <CardGroup>\n <Card className=\"p-4\">\n <CardBody>\n {this.props.loginStatus.securityWasEnabled &&\n this.props.loginStatus.authenticationRequired ==\n false && (\n <p className=\"text-danger\">\n Security has been enabled, please restart the server\n </p>\n )}\n {!this.props.loginStatus.securityWasEnabled && (\n <Form>\n <h1>Enable Security</h1>\n <p className=\"text-muted\">Create an admin account</p>\n <InputGroup className=\"mb-3\">\n <InputGroupAddon addonType=\"prepend\">\n <InputGroupText>\n <i className=\"icon-user\" />\n </InputGroupText>\n </InputGroupAddon>\n <Input\n type=\"text\"\n name=\"username\"\n placeholder=\"Username\"\n onChange={this.handleInputChange}\n onKeyUp={this.handleInputKeyUp}\n />\n </InputGroup>\n <InputGroup className=\"mb-4\">\n <InputGroupAddon addonType=\"prepend\">\n <InputGroupText>\n <i className=\"icon-lock\" />\n </InputGroupText>\n </InputGroupAddon>\n <Input\n type=\"password\"\n name=\"password\"\n placeholder=\"Password\"\n onChange={this.handleInputChange}\n onKeyUp={this.handleInputKeyUp}\n />\n </InputGroup>\n <Row>\n <Col xs=\"6\">\n <Button\n onClick={this.handleClick}\n color=\"primary\"\n className=\"px-4\"\n >\n <i\n className={\n this.state.enabling\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-lock'\n }\n />{' '}\n Enable\n </Button>\n </Col>\n <Col xs=\"6\" className=\"text-right\">\n <p className=\"text-danger\">\n {this.state.errorMessage}\n </p>\n </Col>\n </Row>\n </Form>\n )}\n </CardBody>\n </Card>\n </CardGroup>\n </Col>\n </Row>\n </Container>\n )}\n </div>\n )\n }\n}\n\nexport default connect(({ loginStatus }) => ({ loginStatus }))(EnableSecurity)\n","import React, { Component } from 'react'\nimport {\n Form,\n Container,\n Row,\n Col,\n CardGroup,\n Card,\n CardBody,\n Button,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n Label,\n} from 'reactstrap'\nimport { Link } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { login } from '../../actions'\nimport Dashboard from '../Dashboard/Dashboard'\nimport EnableSecurity from './EnableSecurity'\n\nclass Login extends Component {\n constructor(props) {\n super(props)\n this.state = {\n loggingIn: false,\n loginErrorMessage: null,\n }\n this.handleInputChange = this.handleInputChange.bind(this)\n this.handleInputKeyUp = this.handleInputKeyUp.bind(this)\n this.handleClick = this.handleClick.bind(this)\n }\n\n handleClick(event) {\n this.setState({ loggingIn: true })\n const { dispatch } = this.props\n login(\n dispatch,\n this.state.username,\n this.state.password,\n this.state.rememberMe,\n (error) => {\n this.setState({\n loggingIn: false,\n loginErrorMessage: error,\n })\n }\n )\n }\n\n handleInputChange(event) {\n var value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.setState({ [event.target.name]: value })\n }\n\n handleInputKeyUp(event) {\n if (event.key === 'Enter') {\n this.handleClick()\n }\n }\n\n render() {\n if (\n this.props.loginStatus.status === 'notLoggedIn' &&\n this.props.loginStatus.noUsers === true\n ) {\n return <EnableSecurity />\n } else {\n return (\n <div>\n {this.props.loginStatus.status === 'notLoggedIn' && (\n <Container>\n <Row className=\"justify-content-center\">\n <Col md=\"8\">\n <CardGroup>\n <Card className=\"p-4\">\n <CardBody>\n <h1>Login</h1>\n <p className=\"text-muted\">Sign In to your account</p>\n <InputGroup className=\"mb-3\">\n <InputGroupAddon addonType=\"prepend\">\n <InputGroupText>\n <i className=\"icon-user\" />\n </InputGroupText>\n </InputGroupAddon>\n <Input\n type=\"text\"\n name=\"username\"\n placeholder=\"Username\"\n onChange={this.handleInputChange}\n onKeyUp={this.handleInputKeyUp}\n />\n </InputGroup>\n <InputGroup className=\"mb-4\">\n <InputGroupAddon addonType=\"prepend\">\n <InputGroupText>\n <i className=\"icon-lock\" />\n </InputGroupText>\n </InputGroupAddon>\n <Input\n type=\"password\"\n name=\"password\"\n placeholder=\"Password\"\n onChange={this.handleInputChange}\n onKeyUp={this.handleInputKeyUp}\n />\n </InputGroup>\n <Row>\n <Col xs=\"8\">\n <InputGroup className=\"mb-4\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"rememberMe\"\n className=\"switch-input\"\n onChange={this.handleInputChange}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n Remember Me\n </InputGroup>\n </Col>\n </Row>\n <Row>\n <Col xs=\"6\">\n <Button\n onClick={this.handleClick}\n color=\"primary\"\n className=\"px-4\"\n >\n <i\n className={\n this.state.loggingIn\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-lock'\n }\n />{' '}\n Login\n </Button>\n </Col>\n <Col xs=\"6\" className=\"text-right\">\n {this.state.loginErrorMessage && (\n <p className=\"text-danger\">\n {this.state.loginErrorMessage}\n </p>\n )}\n {!this.state.loginErrorMessage &&\n this.props.loginStatus\n .allowNewUserRegistration && (\n <div>\n <Link to=\"/register\">\n <Button color=\"link\" className=\"px-0\">\n Sign up\n </Button>\n </Link>\n </div>\n )}\n </Col>\n </Row>\n </CardBody>\n </Card>\n </CardGroup>\n </Col>\n </Row>\n </Container>\n )}\n {this.props.loginStatus.status == 'loggedIn' && <Dashboard />}\n </div>\n )\n }\n }\n}\n\nexport default connect(({ loginStatus }) => ({ loginStatus }))(Login)\n","import React, { Component, Suspense } from 'react'\nimport { connect } from 'react-redux'\nimport { toLazyDynamicComponent, APP_PANEL } from './dynamicutilities'\nimport Login from '../../views/security/Login'\nimport ReconnectingWebSocket from 'reconnecting-websocket'\n\nconst wsProto = window.location.protocol == 'https:' ? 'wss' : 'ws'\n\nclass Embedded extends Component {\n constructor(props) {\n super(props)\n this.state = {\n component: toLazyDynamicComponent(\n this.props.match.params.moduleId,\n APP_PANEL\n ),\n }\n this.websockets = []\n\n this.adminUI = {\n hideSideBar: () => {\n window.dispatchEvent(new Event('sidebar:hide'))\n },\n getApplicationUserData: (appDataVersion, path = '') =>\n fetch(\n `/signalk/v1/applicationData/user/${this.props.match.params.moduleId}/${appDataVersion}${path}`,\n { credentials: 'include' }\n )\n .then((r) => {\n if (r.status != 200) {\n throw new Error(r)\n }\n return r\n })\n .then((r) => r.json()),\n setApplicationUserData: (appDataVersion, data = {}, path = '') =>\n fetch(\n `/signalk/v1/applicationData/user/${this.props.match.params.moduleId}/${appDataVersion}${path}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(data),\n credentials: 'include',\n }\n ).then((r) => {\n if (r.status != 200) {\n throw new Error(r)\n }\n return r\n }),\n openWebsocket: (params) => {\n const knownParams = ['subscribe', 'sendCachedValues', 'events']\n const queryParam = knownParams\n .map((p, i) => [i, params[p]])\n .filter((x) => x[1] !== undefined)\n .map(([i, v]) => `${knownParams[i]}=${v}`)\n .join('&')\n const ws = new ReconnectingWebSocket(\n `${wsProto}://${window.location.host}/signalk/v1/stream?${queryParam}`\n )\n this.websockets.push(ws)\n return ws\n },\n get: ({ context, path }) => {\n const cParts = context.split('.')\n return fetch(\n `/signalk/v1/api/${cParts[0]}/${cParts.slice(1).join('.')}/${path}`,\n {\n credentials: 'include',\n }\n )\n },\n Login,\n }\n }\n\n componentWillUnmount() {\n this.websockets.forEach((ws) => {\n try {\n ws.close()\n } catch (e) {\n console.error(e)\n }\n })\n }\n\n render() {\n return (\n <div\n style={{ backgroundColor: 'aliceblue', height: 'calc(100vh - 105px)' }}\n >\n <Suspense fallback=\"Loading...\">\n {React.createElement(this.state.component, {\n ...this.props,\n adminUI: this.adminUI,\n })}\n </Suspense>\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ loginStatus }) => ({ loginStatus })\n\nexport default connect(mapStateToProps)(Embedded)\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { Card, CardBody, CardFooter } from 'reactstrap'\nimport classNames from 'classnames'\nimport { mapToCssModules } from 'reactstrap/lib/utils'\n\nconst propTypes = {\n header: PropTypes.string,\n mainText: PropTypes.string,\n icon: PropTypes.string,\n color: PropTypes.string,\n variant: PropTypes.string,\n footer: PropTypes.bool,\n link: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n bgImage: PropTypes.string,\n}\n\nconst defaultProps = {\n header: '$1,999.50',\n mainText: 'Income',\n icon: 'fa fa-cogs',\n color: 'primary',\n variant: '0',\n link: '#',\n bgImage: '',\n}\n\nclass Widget02 extends Component {\n render() {\n const {\n className,\n cssModule,\n header,\n mainText,\n url,\n icon,\n color,\n footer,\n link,\n children,\n variant,\n bgImage,\n ...attributes\n } = this.props\n\n // demo purposes only\n const padding =\n variant === '0'\n ? { card: 'p-3', icon: 'p-3', lead: 'mt-2' }\n : variant === '1'\n ? {\n card: 'p-0',\n icon: 'p-4',\n lead: 'pt-3',\n }\n : { card: 'p-0', icon: 'p-4 px-5', lead: 'pt-3' }\n\n const card = { style: 'clearfix', color: color, icon: icon, classes: '' }\n card.classes = mapToCssModules(\n classNames(className, card.style, padding.card),\n cssModule\n )\n\n const lead = { style: 'h5 mb-0', color: color, classes: '' }\n lead.classes = classNames(\n lead.style,\n 'text-' + card.color,\n padding.lead,\n 'text-capitalize'\n )\n\n const blockIcon = function (icon, bgImage = null) {\n const classes = classNames(\n icon,\n 'bg-' + card.color,\n padding.icon,\n 'font-2xl mr-3 float-left'\n )\n const style = {\n backgroundSize: 'cover',\n backgroundImage: bgImage ? `url(${bgImage})` : 'unset',\n }\n if (bgImage) {\n style.width = style.height = '72px'\n }\n return <i className={classes} style={style} />\n }\n\n const cardFooter = function () {\n if (footer) {\n return (\n <CardFooter className=\"px-3 py-2\">\n <a\n className=\"font-weight-bold font-xs btn-block text-muted\"\n href={link}\n >\n View More\n <i className=\"fa fa-angle-right float-right font-lg\" />\n </a>\n </CardFooter>\n )\n }\n }\n\n return (\n <a href={url}>\n <Card>\n <CardBody className={card.classes} {...attributes}>\n {blockIcon(\n card.icon,\n this.props.bgImage && `${this.props.url}/${this.props.bgImage}`\n )}\n <div className={lead.classes}>{header}</div>\n <div className=\"text-muted font-xs\">{mainText}</div>\n </CardBody>\n {cardFooter()}\n </Card>\n </a>\n )\n }\n}\n\nWidget02.propTypes = propTypes\nWidget02.defaultProps = defaultProps\n\nexport default Widget02\n","import React, { Component, Suspense } from 'react'\nimport { connect } from 'react-redux'\nimport { Card, CardBody, CardHeader, Col } from 'reactstrap'\nimport {\n ADDON_PANEL,\n toLazyDynamicComponent,\n toSafeModuleId,\n} from './dynamicutilities'\n\nimport Webapp from './Webapp'\n\nclass Webapps extends Component {\n constructor(props) {\n super(props)\n this.state = {\n addonComponents: [],\n }\n }\n\n setAddonComponents() {\n this.setState({\n addonComponents: this.props.addons.map((md) =>\n toLazyDynamicComponent(md.name, ADDON_PANEL)\n ),\n })\n }\n\n componentDidMount() {\n this.setAddonComponents()\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.addons != prevProps.addons) {\n this.setAddonComponents()\n }\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>Webapps</CardHeader>\n <CardBody>\n <div className=\"row\">\n {this.props.webapps\n .filter(\n (webAppInfo) => webAppInfo.name !== '@signalk/server-admin-ui'\n )\n .map((webappInfo) => {\n const url = webappInfo.keywords.includes(\n 'signalk-embeddable-webapp'\n )\n ? `/admin/#/e/${toSafeModuleId(webappInfo.name)}`\n : `/${webappInfo.name}`\n return (\n <Col xs=\"12\" md=\"12\" lg=\"6\" xl=\"4\" key={webappInfo.name}>\n <Webapp\n key={webappInfo.name}\n header={\n webappInfo.signalk && webappInfo.signalk.displayName\n ? webappInfo.signalk.displayName\n : webappInfo.name\n }\n mainText={webappInfo.description}\n url={url}\n icon={`fa ${\n webappInfo.signalk && webappInfo.signalk.displayName\n ? ''\n : 'icon-grid'\n }`}\n color=\"primary\"\n bgImage={\n webappInfo.signalk && webappInfo.signalk.appIcon\n ? webappInfo.signalk.appIcon\n : undefined\n }\n />\n </Col>\n )\n })}\n </div>\n </CardBody>\n </Card>\n\n <Card>\n <CardHeader>Addons</CardHeader>\n <CardBody>\n {this.state.addonComponents.map((c, i) => (\n <Suspense key={i} fallback=\"Loading...\">\n {React.createElement(c, { ...this.props })}\n </Suspense>\n ))}\n </CardBody>\n </Card>\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ webapps, addons }) => ({ webapps, addons })\n\nexport default connect(mapStateToProps)(Webapps)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport get from 'lodash.get'\nimport JSONTree from 'react-json-tree'\nimport {\n Badge,\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n} from 'reactstrap'\nimport moment from 'moment'\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\n\nconst timestampFormat = 'MM/DD HH:mm:ss'\n\nconst metaStorageKey = 'admin.v1.dataBrowser.meta'\nconst pauseStorageKey = 'admin.v1.dataBrowser.v1.pause'\nconst contextStorageKey = 'admin.v1.dataBrowser.context'\nconst searchStorageKey = 'admin.v1.dataBrowser.search'\n\nfunction fetchSources() {\n fetch(`/signalk/v1/api/sources`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((sources) => {\n Object.values(sources).forEach((source) => {\n if (source.type === 'NMEA2000') {\n Object.keys(source).forEach((key) => {\n let device = source[key]\n if (device.n2k && device.n2k.productName) {\n source[\n `${device.n2k.manufacturerName || ''} ${\n device.n2k.productName\n } (${key})`\n ] = device\n delete source[key]\n }\n })\n }\n })\n this.setState({ ...this.state, sources: sources })\n })\n}\n\nclass DataBrowser extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n webSocket: null,\n didSubscribe: false,\n pause: localStorage.getItem(pauseStorageKey) === 'true',\n includeMeta: localStorage.getItem(metaStorageKey) === 'true',\n data: {},\n meta: {},\n context: localStorage.getItem(contextStorageKey) || 'self',\n search: localStorage.getItem(searchStorageKey) || '',\n }\n\n this.fetchSources = fetchSources.bind(this)\n this.handlePause = this.handlePause.bind(this)\n this.handleMessage = this.handleMessage.bind(this)\n this.handleContextChange = this.handleContextChange.bind(this)\n this.handleSearch = this.handleSearch.bind(this)\n this.handleMeta = this.handleMeta.bind(this)\n }\n\n handleMessage(msg) {\n if (this.state.pause) {\n return\n }\n\n if (msg.context && msg.updates) {\n const key =\n msg.context === this.state.webSocket.skSelf ? 'self' : msg.context\n\n let isNew = false\n if (!this.state.data[key]) {\n this.state.data[key] = {}\n isNew = true\n }\n\n if (!this.state.meta[key]) {\n this.state.meta[key] = {}\n isNew = true\n }\n\n let context = this.state.data[key]\n let contextMeta = this.state.meta[key]\n\n msg.updates.forEach((update) => {\n if (update.values) {\n let pgn =\n update.source && update.source.pgn && `(${update.source.pgn})`\n let sentence =\n update.source &&\n update.source.sentence &&\n `(${update.source.sentence})`\n update.values.forEach((vp) => {\n if (vp.path === '') {\n Object.keys(vp.value).forEach((k) => {\n context[k] = {\n path: k,\n value: vp.value[k],\n $source: update.$source,\n pgn,\n sentence,\n timestamp: moment(update.timestamp).format(timestampFormat),\n }\n })\n } else {\n context[vp.path + '$' + update['$source']] = {\n path: vp.path,\n $source: update.$source,\n value: vp.value,\n pgn,\n sentence,\n timestamp: moment(update.timestamp).format(timestampFormat),\n }\n }\n })\n }\n if (update.meta) {\n update.meta.forEach((vp) => {\n contextMeta[vp.path] = { ...contextMeta[vp.path], ...vp.value }\n })\n }\n })\n\n if (isNew || (this.state.context && this.state.context === key)) {\n this.setState({\n ...this.state,\n hasData: true,\n data: this.state.data,\n meta: this.state.meta,\n })\n }\n }\n }\n\n subscribeToDataIfNeeded() {\n if (\n !this.state.pause &&\n this.props.webSocket &&\n (this.props.webSocket != this.state.webSocket ||\n this.state.didSubscribe === false)\n ) {\n const sub = {\n context: '*',\n subscribe: [\n {\n path: '*',\n period: 2000,\n },\n ],\n }\n\n this.props.webSocket.send(JSON.stringify(sub))\n this.state.webSocket = this.props.webSocket\n this.state.didSubscribe = true\n this.state.webSocket.messageHandler = this.handleMessage\n }\n }\n\n unsubscribeToData() {\n if (this.props.webSocket) {\n const sub = {\n context: '*',\n unsubscribe: [\n {\n path: '*',\n },\n ],\n }\n this.props.webSocket.send(JSON.stringify(sub))\n this.state.didSubscribe = false\n this.props.webSocket.messageHandler = null\n }\n }\n\n componentDidMount() {\n this.fetchSources()\n this.subscribeToDataIfNeeded()\n }\n\n componentDidUpdate() {\n this.subscribeToDataIfNeeded()\n }\n\n componentWillUnmount() {\n this.unsubscribeToData()\n }\n\n handleContextChange(event) {\n this.setState({ ...this.state, context: event.target.value })\n localStorage.setItem(contextStorageKey, event.target.value)\n }\n\n handleSearch(event) {\n this.setState({ ...this.state, search: event.target.value })\n localStorage.setItem(searchStorageKey, event.target.value)\n }\n\n handleMeta(event) {\n this.setState({ ...this.state, includeMeta: event.target.checked })\n localStorage.setItem(metaStorageKey, event.target.checked)\n }\n\n handlePause(event) {\n this.state.pause = event.target.checked\n this.setState(this.state)\n localStorage.setItem(pauseStorageKey, this.state.pause)\n if (this.state.pause) {\n this.unsubscribeToData()\n } else {\n this.fetchSources()\n this.subscribeToDataIfNeeded()\n }\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n <Card>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"select\"\n value={this.state.context}\n name=\"context\"\n onChange={this.handleContextChange}\n >\n <option value=\"none\">Select a context</option>\n {Object.keys(this.state.data || {})\n .sort()\n .map((key) => {\n return (\n <option key={key} value={key}>\n {key}\n </option>\n )\n })}\n </Input>\n </Col>\n <Col xs=\"8\" md=\"2\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"Meta\"\n name=\"meta\"\n className=\"switch-input\"\n onChange={this.handleMeta}\n checked={this.state.includeMeta}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>{' '}\n Meta Data\n </Col>\n <Col xs=\"8\" md=\"2\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"Pause\"\n name=\"pause\"\n className=\"switch-input\"\n onChange={this.handlePause}\n checked={this.state.pause}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>{' '}\n Pause\n </Col>\n </FormGroup>\n {this.state.context && this.state.context !== 'none' && (\n <FormGroup row>\n <Col xs=\"3\" md=\"2\">\n <Label htmlFor=\"select\">Search</Label>\n </Col>\n <Col xs=\"12\" md=\"12\">\n <Input\n type=\"text\"\n name=\"search\"\n onChange={this.handleSearch}\n value={this.state.search}\n />\n </Col>\n </FormGroup>\n )}\n\n {!this.state.includeMeta &&\n this.state.context &&\n this.state.context !== 'none' && (\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Path</th>\n <th>Value</th>\n <th>Units</th>\n <th>Timestamp</th>\n <th>Source</th>\n </tr>\n </thead>\n <tbody>\n {Object.keys(this.state.data[this.state.context] || {})\n .filter((key) => {\n return (\n !this.state.search ||\n this.state.search.length === 0 ||\n key\n .toLowerCase()\n .indexOf(this.state.search.toLowerCase()) !== -1\n )\n })\n .sort()\n .map((key) => {\n const data = this.state.data[this.state.context][key]\n const formatted = JSON.stringify(\n data.value,\n null,\n typeof data.value === 'object' &&\n Object.keys(data.value || {}).length > 1\n ? 2\n : 0\n )\n const meta =\n this.state.meta[this.state.context][data.path]\n const units = meta && meta.units ? meta.units : ''\n const path = key.substring(0, key.lastIndexOf('.'))\n\n return (\n <tr key={key}>\n <td>\n <CopyToClipboardWithFade text={data.path}>\n <span>\n {data.path} <i className=\"far fa-copy\"></i>\n </span>\n </CopyToClipboardWithFade>\n </td>\n <td>\n <pre\n className=\"text-primary\"\n style={{ whiteSpace: 'pre-wrap' }}\n >\n {formatted}\n </pre>\n </td>\n <td>{units}</td>\n <td>{data.timestamp}</td>\n <td>\n <CopyToClipboardWithFade text={data.path}>\n {data.$source} <i className=\"far fa-copy\"></i>\n </CopyToClipboardWithFade>{' '}\n {data.pgn || ''}\n {data.sentence || ''}\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n )}\n\n {this.state.includeMeta &&\n this.state.context &&\n this.state.context !== 'none' && (\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Path</th>\n <th>Meta</th>\n </tr>\n </thead>\n <tbody>\n {Object.keys(this.state.meta[this.state.context] || {})\n .filter((key) => {\n return (\n !this.state.search ||\n this.state.search.length === 0 ||\n key.indexOf(this.state.search) !== -1\n )\n })\n .sort()\n .map((key) => {\n const meta = this.state.meta[this.state.context][key]\n const formatted = JSON.stringify(meta, null, 2)\n const path = key\n return (\n <tr key={path}>\n <td>{path}</td>\n <td>\n <pre\n className=\"text-primary\"\n style={{ whiteSpace: 'pre-wrap' }}\n >\n {formatted}\n </pre>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n )}\n </Form>\n </CardBody>\n </Card>\n\n {this.state.sources && (\n <Card>\n <CardHeader>Sources</CardHeader>\n <CardBody>\n <JSONTree\n data={this.state.sources}\n theme=\"default\"\n sortObjectKeys\n hideRoot\n />\n </CardBody>\n </Card>\n )}\n </div>\n )\n }\n}\n\nclass CopyToClipboardWithFade extends Component {\n constructor() {\n super()\n this.state = {\n opacity: 1,\n }\n }\n\n render() {\n const { opacity } = this.state\n const onCopy = function () {\n this.setState({ opacity: 0.5 })\n setTimeout(() => {\n this.setState({ opacity: 1 })\n }, 500)\n }.bind(this)\n return (\n <CopyToClipboard text={this.props.text} onCopy={onCopy}>\n <span style={{ opacity }}> {this.props.children}</span>\n </CopyToClipboard>\n )\n }\n}\n\nexport default connect(({ webSocket }) => ({ webSocket }))(DataBrowser)\n","import React, { Component, useState } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Badge,\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n TabContent,\n TabPane,\n Nav,\n NavItem,\n NavLink,\n} from 'reactstrap'\nimport classnames from 'classnames'\n//import { Tabs, Tab, TabList, TabPanel } from 'react-tabs'\n//import 'react-tabs/style/react-tabs.css';\n\nimport moment from 'moment'\nimport jsonlint from 'jsonlint-mod'\n\nconst timestampFormat = 'MM/DD HH:mm:ss'\nconst inputStorageKey = 'admin.v1.playground.input'\n\nconst DELTAS_TAB_ID = 'deltas'\nconst PATHS_TAB_ID = 'paths'\nconst N2KJSON_TAB_ID = 'n2kjson'\nconst PUTRESULTS_TAB_ID = 'putresults'\nconst LINT_ERROR_TAB_ID = 'lintErrors'\n\nclass Playground extends Component {\n constructor(props) {\n super(props)\n const input = localStorage.getItem(inputStorageKey) || ''\n this.state = {\n hasData: true,\n data: [],\n deltas: [],\n n2kJson: [],\n input,\n inputIsJson: isJson(input),\n sending: false,\n activeTab: DELTAS_TAB_ID,\n }\n\n this.handleExecute = this.handleExecute.bind(this)\n this.handleInput = this.handleInput.bind(this)\n this.send = this.send.bind(this)\n this.beautify = this.beautify.bind(this)\n }\n\n handleInput(event) {\n this.setState({\n ...this.state,\n input: event.target.value,\n inputIsJson: isJson(event.target.value),\n })\n localStorage.setItem(inputStorageKey, event.target.value)\n if (this.inputWaitTimeout) {\n clearTimeout(this.inputWaitTimeout)\n }\n this.inputWaitTimeout = setTimeout(() => {\n if (this.state.input.length > 0) {\n this.send(false)\n }\n }, 500)\n }\n\n handleExecute(event) {\n this.send(true)\n }\n\n componentDidMount() {\n if (this.state.input && this.state.input.length > 0) {\n this.send(false)\n }\n }\n\n beautify() {\n try {\n jsonlint.parse(this.state.input)\n const text = JSON.stringify(JSON.parse(this.state.input), null, 2)\n this.setState({ ...this.state, input: text, jsonError: null })\n } catch (error) {\n this.setState({\n ...this.state,\n data: [],\n deltas: [],\n putResults: [],\n n2kJson: [],\n jsonError: null,\n error: 'invalid json',\n jsonError: error.message,\n activeTab: LINT_ERROR_TAB_ID,\n })\n }\n }\n\n send(sendToServer) {\n let start = this.state.input.trim().charAt(0)\n if (start === '{' || start === '[') {\n try {\n jsonlint.parse(this.state.input)\n if (this.state.activeTab === LINT_ERROR_TAB_ID) {\n this.setState({ ...this.state, activeTab: DELTAS_TAB_ID })\n }\n } catch (error) {\n this.setState({\n ...this.state,\n data: [],\n deltas: [],\n putResults: [],\n n2kJson: [],\n error: 'invalid json',\n jsonError: error.message,\n activeTab: LINT_ERROR_TAB_ID,\n })\n return\n }\n }\n\n const body = { value: this.state.input, sendToServer }\n localStorage.setItem(inputStorageKey, this.state.input)\n if (sendToServer) {\n this.setState({ ...this.state, sending: true })\n }\n fetch(`${window.serverRoutesPrefix}/inputTest`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n })\n .then((response) => response.json())\n .then((data) => {\n if (sendToServer) {\n setTimeout(() => {\n this.setState({ ...this.state, sending: false })\n }, 1000)\n }\n if (data.error) {\n this.setState({\n ...this.state,\n data: [],\n deltas: [],\n putResults: [],\n n2kJson: [],\n jsonError: null,\n error: data.error,\n })\n } else {\n this.state.error = null\n this.setState(this.state)\n const values = []\n data.deltas.forEach((delta) => {\n if (!delta.context) {\n delta.context = 'vessels.self'\n }\n if (delta.updates) {\n delta.updates.forEach((update) => {\n if (update.values) {\n update.values.forEach((vp) => {\n if (vp.path === '') {\n Object.keys(vp.value).forEach((k) => {\n values.push({\n path: k,\n value: vp.value[k],\n context: delta.context,\n timestamp: moment(update.timestamp).format(\n timestampFormat\n ),\n })\n })\n } else {\n values.push({\n path: vp.path,\n value: vp.value,\n context: delta.context,\n timestamp: moment(update.timestamp).format(\n timestampFormat\n ),\n })\n }\n })\n }\n })\n }\n })\n this.setState({\n ...this.state,\n data: values,\n deltas: data.deltas,\n n2kJson: data.n2kJson,\n putResults: data.putResults,\n jsonError: null,\n })\n }\n })\n .catch((error) => {\n console.error(error)\n this.setState({\n ...this.state,\n data: [],\n deltas: [],\n putResults: [],\n n2kJson: [],\n error: error.message,\n jsonError: null,\n })\n if (sendToServer) {\n this.setState({ ...this.state, sending: false })\n }\n })\n }\n\n render() {\n const toggle = (tab) => {\n this.setState({ ...this.state, activeTab: tab })\n }\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Row>\n <Col xs=\"12\" md=\"6\">\n <Card>\n <CardHeader>Input</CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"12\" md=\"12\">\n <FormText color=\"muted\">\n You can enter multi-line raw NMEA 2000, NMEA 0183 or\n Signal K deltas (one delta or an array)\n </FormText>\n <Input\n type=\"textarea\"\n name=\"input\"\n rows=\"15\"\n onChange={this.handleInput}\n value={this.state.input}\n />\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button\n size=\"sm\"\n color=\"primary\"\n className=\"float-left\"\n disabled={!this.state.inputIsJson}\n onClick={this.beautify}\n >\n <i className=\"fa fa-dot-circle-o\" /> Beautify JSON\n </Button>\n <span\n className=\"float-left\"\n style={{ paddingLeft: '10px', paddingTop: '0.25rem' }}\n >\n {' '}\n {this.state.error && (\n <p className=\"text-danger\">{this.state.error}</p>\n )}\n </span>{' '}\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleExecute}\n className=\"float-right\"\n >\n <i\n className={\n this.state.sending\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-dot-circle-o'\n }\n />{' '}\n Send To Server\n </Button>\n </CardFooter>\n </Card>\n </Col>\n <Col xs=\"12\" md=\"6\">\n <Card>\n <CardHeader>Output</CardHeader>\n <CardBody>\n <Nav tabs>\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === DELTAS_TAB_ID,\n })}\n onClick={() => {\n toggle(DELTAS_TAB_ID)\n }}\n >\n Deltas\n </NavLink>\n </NavItem>\n {this.state.data.length > 0 && (\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === PATHS_TAB_ID,\n })}\n onClick={() => {\n toggle(PATHS_TAB_ID)\n }}\n >\n Paths\n </NavLink>\n </NavItem>\n )}\n {this.state.n2kJson && this.state.n2kJson.length > 0 && (\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === N2KJSON_TAB_ID,\n })}\n onClick={() => {\n toggle(N2KJSON_TAB_ID)\n }}\n >\n Decoded NMEA 2000\n </NavLink>\n </NavItem>\n )}\n {this.state.putResults &&\n this.state.putResults.length > 0 && (\n <NavItem>\n <NavLink\n className={classnames({\n active:\n this.state.activeTab === PUTRESULTS_TAB_ID,\n })}\n onClick={() => {\n toggle(PUTRESULTS_TAB_ID)\n }}\n >\n Put Results\n </NavLink>\n </NavItem>\n )}\n {this.state.jsonError && (\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === LINT_ERROR_TAB_ID,\n })}\n onClick={() => {\n toggle(LINT_ERROR_TAB_ID)\n }}\n >\n Json Lint Error\n </NavLink>\n </NavItem>\n )}\n </Nav>\n <TabContent activeTab={this.state.activeTab}>\n <TabPane tabId={DELTAS_TAB_ID}>\n {this.state.deltas.length > 0 && (\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n }}\n >\n <pre>\n {JSON.stringify(this.state.deltas, null, 2)}\n </pre>\n </div>\n )}\n </TabPane>\n\n {this.state.data.length > 0 && (\n <TabPane tabId={PATHS_TAB_ID}>\n <div style={{ overflowY: 'scroll', maxHeight: '60vh' }}>\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Path</th>\n <th>Value</th>\n <th>Context</th>\n </tr>\n </thead>\n <tbody>\n {this.state.data.map((data) => {\n const formatted = JSON.stringify(\n data.value,\n null,\n typeof data.value === 'object' &&\n data.value !== null &&\n Object.keys(data.value).length > 1\n ? 2\n : 0\n )\n const path = data.path\n const key = `${data.path}${data.context}`\n\n return (\n <tr key={key}>\n <td>{data.path}</td>\n <td>\n <pre\n className=\"text-primary\"\n style={{ whiteSpace: 'pre-wrap' }}\n >\n {formatted}\n </pre>\n </td>\n <td>{data.context}</td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </div>\n </TabPane>\n )}\n\n {this.state.n2kJson &&\n this.state.n2kJson.length > 0 &&\n n2kJsonPanel(this.state.n2kJson)}\n\n {this.state.putResults &&\n this.state.putResults.length > 0 && (\n <TabPane tabId={PUTRESULTS_TAB_ID}>\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n }}\n >\n <pre>\n {JSON.stringify(this.state.putResults, null, 2)}\n </pre>\n </div>\n </TabPane>\n )}\n\n {this.state.jsonError && (\n <TabPane tabId={LINT_ERROR_TAB_ID}>\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n }}\n >\n <pre>{this.state.jsonError}</pre>\n </div>\n </TabPane>\n )}\n </TabContent>\n </CardBody>\n </Card>\n </Col>\n </Row>\n </div>\n )\n )\n }\n}\n\nfunction n2kJsonPanel(n2kData) {\n return (\n <TabPane tabId={N2KJSON_TAB_ID}>\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n }}\n >\n <pre>{JSON.stringify(n2kData, null, 2)}</pre>\n </div>\n </TabPane>\n )\n}\n\nfunction isJson(input) {\n let inputIsJson = false\n try {\n JSON.parse(input)\n inputIsJson = true\n } catch (e) {}\n return inputIsJson\n}\n\nexport default connect(({ webSocket }) => ({ webSocket }))(Playground)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Badge,\n Row,\n Col,\n Card,\n CardHeader,\n CardBody,\n Table,\n Pagination,\n PaginationItem,\n PaginationLink,\n Progress,\n} from 'reactstrap'\n\nclass ThisSession extends Component {\n render() {\n var thisSessionApps = this.props.installingApps\n if (thisSessionApps && thisSessionApps.length) {\n return (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" /> Activity This Session\n (restart server when completed!)\n </CardHeader>\n <CardBody>\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Status</th>\n <th>Name</th>\n <th>Version</th>\n <th>Description</th>\n <th>Author</th>\n <th>NPM</th>\n </tr>\n </thead>\n <tbody>\n {thisSessionApps.map((app) => {\n var status\n var progress = ''\n if (app.isInstalling || app.isRemoving || app.isWaiting) {\n status = app.isRemove ? 'Removing' : 'Installing'\n progress = (\n <Progress\n className=\"progress-sm\"\n animated\n color=\"success\"\n value=\"100\"\n />\n )\n } else if (app.installFailed) {\n status = 'Failed'\n } else {\n status = 'Installed '\n status = app.isRemove ? 'Removed' : 'Installed'\n }\n\n return (\n <tr key={app.name}>\n <td>\n {status}\n {progress}\n </td>\n <td>{app.name}</td>\n <td>{app.version}</td>\n <td>{app.description}</td>\n <td>{app.author}</td>\n <td>\n <a href={app.npmUrl}>npm</a>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n </Card>\n </div>\n )\n } else {\n return ''\n }\n }\n}\n\nexport default ThisSession\n","import React, { Component } from 'react'\n\nimport { Button } from 'reactstrap'\n\nclass AppsList extends Component {\n constructor(props) {\n super(props)\n this.state = {\n installing: {},\n }\n }\n\n render() {\n return (\n <ul className=\"icons-list\">\n {(this.props.apps || [])\n .filter(\n (app) => app.keywords.indexOf('signalk-category-hidden') === -1\n )\n .map((app) => (\n <li key={app.name} style={{ borderBottom: '1px solid #a4b7c1' }}>\n {mainIcon(app)}\n <div\n className=\"desc\"\n style={{\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n marginRight: '90px',\n }}\n >\n <a\n href={app.npmUrl}\n target=\"_blank\"\n title=\"See app documentation on npmjs.com\"\n >\n <i className=\"icon-info\" />\n </a>\n <div className=\"title\">\n <b>\n {app.name}{' '}\n {app.categories.indexOf('Deprecated') !== -1\n ? '(Deprecated)'\n : ''}\n </b>\n </div>\n <small>\n {app.description} by {app.author}\n </small>\n </div>\n <div className=\"value\">\n <div className=\"small text-muted\">Version</div>\n <strong>\n {app.installedVersion || app.version}\n {app.installedVersion &&\n app.version != app.installedVersion &&\n this.props.listName !== 'installed' &&\n ' \\u27a1 ' + app.version}\n </strong>\n </div>\n <div className=\"actions\">\n {this.props.listName !== 'installed' &&\n (!app.installedVersion ||\n (this.props.listName === 'updates' &&\n app.version != app.installedVersion)) && (\n <Button\n color=\"link\"\n className=\"text-muted\"\n onClick={installApp.bind(this, app.name, app.version)}\n >\n <i\n className={\n this.state.installing[app.name]\n ? 'fa fa-spinner fa-spin'\n : 'icon-cloud-download'\n }\n />\n </Button>\n )}\n\n {this.props.listName !== 'updates' && app.installedVersion && (\n <Button\n color=\"link\"\n className=\"text-danger\"\n onClick={removeApp.bind(this, app.name)}\n >\n <i\n className={\n this.state.installing[app.name]\n ? 'fa fa-spinner fa-spin'\n : 'fas fa-trash'\n }\n />\n </Button>\n )}\n </div>\n </li>\n ))}\n </ul>\n )\n }\n}\n\nfunction mainIcon(app) {\n return (\n <span>\n {app.isWebapp && <i className=\"icon-grid bg-primary\" title=\"webapp\" />}\n {app.isEmbeddableWebapp && (\n <i className=\"icon-puzzle bg-primary\" title=\"embeddable webapp\" />\n )}\n {app.isPlugin && (\n <i className=\"icon-settings bg-success\" title=\"plugin\" />\n )}\n </span>\n )\n}\n\nfunction updateInstalling(that, name, value) {\n that.setState((state, props) => {\n state.installing[name] = value\n return { installing: state.installing }\n })\n}\n\nfunction installApp(name, version) {\n updateInstalling(this, name, true)\n fetch(`${window.serverRoutesPrefix}/appstore/install/${name}/${version}`, {\n method: 'POST',\n credentials: 'include',\n })\n}\n\nfunction removeApp(name) {\n if (confirm(`Are you sure you want to remove ${name}?`)) {\n updateInstalling(this, name, true)\n fetch(`${window.serverRoutesPrefix}/appstore/remove/${name}`, {\n method: 'POST',\n credentials: 'include',\n })\n }\n}\n\nexport default AppsList\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n Form,\n FormGroup,\n Col,\n Input,\n Label,\n} from 'reactstrap'\nimport ThisSession from './ThisSession'\nimport AppsList from './AppsList'\n\nconst viewParams = {\n apps: {\n listName: 'available',\n title: 'Available Apps',\n defaultCategory: 'New/Updated',\n },\n installed: {\n listName: 'installed',\n title: 'Installed Apps',\n defaultCategory: 'All',\n },\n updates: {\n listName: 'updates',\n title: 'Available Updates',\n defaultCategory: 'All',\n },\n}\n\nclass AppTable extends Component {\n constructor(props) {\n super(props)\n\n const viewData = viewParams[this.props.match.params.view]\n\n let categorized = this.categorize(viewData.defaultCategory)\n\n this.state = {\n category: viewData.defaultCategory,\n categorized: categorized,\n search: '',\n }\n\n this.handleCategoryChange = this.handleCategoryChange.bind(this)\n this.handleSearch = this.handleSearch.bind(this)\n }\n\n categorize(category) {\n const viewData = viewParams[this.props.match.params.view]\n const apps = this.props.appStore[viewData.listName]\n return category === 'All'\n ? apps\n : apps.filter((app) => app.categories.indexOf(category) !== -1)\n }\n\n componentDidUpdate() {\n if (!this.state.categorized || !this.state.categorized.length) {\n const categorized = this.categorize(this.state.category)\n if (categorized && categorized.length) {\n this.setState({ categorized })\n }\n }\n }\n\n handleCategoryChange(event) {\n let searchResults\n let categorized = this.categorize(event.target.value)\n\n if (this.state.search.length > 0) {\n searchResults = this.searchApps(categorized, this.state.search)\n }\n\n this.setState({\n category: event.target.value,\n categorized,\n searchResults,\n })\n }\n\n searchApps(apps, searchString) {\n const lowerCase = searchString.toLowerCase()\n return apps.filter((app) => {\n return (\n app.keywords.filter((k) => k.toLowerCase().includes(lowerCase))\n .length ||\n app.name.toLowerCase().includes(lowerCase) ||\n (app.description &&\n app.description.toLowerCase().includes(lowerCase)) ||\n (app.author && app.author.toLowerCase().includes(lowerCase))\n )\n })\n }\n\n handleSearch(event) {\n let searchResults = null\n const search = event.target.value\n if (search.length !== 0) {\n searchResults = this.searchApps(this.state.categorized, search)\n }\n\n this.setState({ search, searchResults })\n }\n\n render() {\n const viewData = viewParams[this.props.match.params.view]\n return (\n <div className=\"animated fadeIn\">\n <ThisSession installingApps={this.props.appStore.installing} />\n {!this.props.appStore.storeAvailable && (\n <Card className=\"border-warning\">\n <CardHeader>Appstore not available</CardHeader>\n <CardBody>\n You probably don't have Internet connectivity and Appstore can not\n be reached.\n </CardBody>\n </Card>\n )}\n {this.props.appStore.storeAvailable && (\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" /> {viewData.title}\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={this.state.category}\n name=\"context\"\n onChange={this.handleCategoryChange}\n >\n {this.props.appStore.categories.map((key) => {\n return (\n <option disabled={key == '---'} key={key} value={key}>\n {key}\n </option>\n )\n })}\n </Input>\n </Col>\n <Col xs=\"3\" md=\"1\" className={'col-form-label'}>\n <Label htmlFor=\"select\">Search</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"search\"\n onChange={this.handleSearch}\n value={this.state.search}\n />\n </Col>\n </FormGroup>\n </Form>\n <AppsList\n apps={this.state.searchResults || this.state.categorized}\n storeAvailable={this.props.appStore.storeAvailable}\n listName={viewData.listName}\n />\n </CardBody>\n </Card>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ appStore }) => ({ appStore })\n\nexport default connect(mapStateToProps)(AppTable)\n","import React, { Component } from 'react'\nimport Form from 'react-jsonschema-form-bs4'\n\nexport default ({ plugin, onSubmit }) => {\n const schema = JSON.parse(JSON.stringify(plugin.schema))\n var uiSchema = {}\n\n if (typeof plugin.uiSchema !== 'undefined') {\n uiSchema['configuration'] = JSON.parse(JSON.stringify(plugin.uiSchema))\n }\n\n const topSchema = {\n type: 'object',\n properties: {\n configuration: {\n type: 'object',\n title: ' ',\n description: schema.description,\n type: 'object',\n properties: schema.properties,\n },\n },\n }\n\n if (plugin.statusMessage) {\n topSchema.description = `Status: ${plugin.statusMessage}`\n }\n\n const { enabled, enableLogging, enableDebug } = plugin.data\n return (\n <Form\n schema={topSchema}\n uiSchema={uiSchema}\n formData={plugin.data || {}}\n onSubmit={(submitData) => {\n onSubmit({\n ...submitData.formData,\n enabled,\n enableLogging,\n enableDebug,\n })\n }}\n />\n )\n}\n","import React, { Component, Suspense } from 'react'\nimport {\n PLUGIN_CONFIG_PANEL,\n toLazyDynamicComponent,\n} from '../Webapps/dynamicutilities'\n\nexport default class EmbeddedPluginConfigurationForm extends Component {\n constructor(props) {\n super(props)\n this.state = {\n component: toLazyDynamicComponent(\n props.plugin.packageName,\n PLUGIN_CONFIG_PANEL\n ),\n configuration: this.props.plugin.data.configuration,\n }\n }\n\n render() {\n return (\n <div>\n <Suspense fallback=\"Loading...\">\n {React.createElement(this.state.component, {\n configuration: this.state.configuration,\n save: (configuration) => {\n this.props.saveData({\n ...this.props.plugin.data,\n configuration,\n })\n this.setState({ configuration })\n },\n })}\n </Suspense>\n </div>\n )\n }\n}\n","import React, { Component } from 'react'\nimport PluginConfigurationForm from './../ServerConfig/PluginConfigurationForm'\nimport {\n Alert,\n Button,\n Card,\n CardBody,\n CardHeader,\n Row,\n Col,\n Input,\n Label,\n Form,\n FormGroup,\n} from 'reactstrap'\nimport EmbeddedPluginConfigurationForm from './EmbeddedPluginConfigurationForm'\nimport { Fragment } from 'react'\n\nconst searchStorageKey = 'admin.v1.plugins.search'\nconst openPluginStorageKey = 'admin.v1.plugins.openPlugin'\n\nexport default class PluginConfigurationList extends Component {\n constructor(props) {\n super(props)\n this.state = {\n plugins: [],\n search: localStorage.getItem(searchStorageKey) || '',\n searchResults: null,\n }\n this.lastOpenedPlugin = '--'\n this.handleSearch = this.handleSearch.bind(this)\n }\n\n searchPlugins(plugins, searchString) {\n const lowerCase = searchString.toLowerCase()\n return plugins.filter((plugin) => {\n return (\n plugin.id.toLowerCase().includes(lowerCase) ||\n plugin.packageName.toLowerCase().includes(lowerCase) ||\n (plugin.description &&\n plugin.description.toLowerCase().includes(lowerCase)) ||\n plugin.name.toLowerCase().includes(lowerCase)\n )\n })\n }\n\n handleSearch(event) {\n let searchResults = null\n const search = event.target.value\n if (search.length !== 0) {\n searchResults = this.searchPlugins(this.state.plugins, search)\n }\n\n this.setState({ search, searchResults })\n localStorage.setItem(searchStorageKey, event.target.value)\n }\n\n toggleForm(clickedIndex, id) {\n const openedPluginId = this.props.match.params.pluginid === id ? '-' : id\n if (this.props.match.params.pluginid === id) {\n localStorage.removeItem(openPluginStorageKey)\n } else {\n localStorage.setItem(openPluginStorageKey, openedPluginId)\n }\n this.props.history.replace(`/serverConfiguration/plugins/${openedPluginId}`)\n }\n\n componentDidMount() {\n fetch(`${window.serverRoutesPrefix}/plugins`, {\n credentials: 'same-origin',\n })\n .then((response) => {\n if (response.status == 200) {\n return response.json()\n } else {\n throw new Error('/plugins request failed:' + response.status)\n }\n })\n .then((plugins) => {\n let searchResults\n if (this.state.search.length > 0) {\n searchResults = this.searchPlugins(plugins, this.state.search)\n }\n this.setState({ plugins, searchResults })\n })\n .catch((error) => {\n console.error(error)\n alert('Could not fetch plugins list')\n })\n }\n\n render() {\n return (\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n <strong>Plugin Configuration</strong>\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"3\" md=\"1\" className={'col-form-label'}>\n <Label htmlFor=\"select\">Search</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"search\"\n onChange={this.handleSearch}\n value={this.state.search}\n />\n </Col>\n </FormGroup>\n </Form>\n\n {(this.state.searchResults || this.state.plugins).map((plugin, i) => {\n const isOpen = this.props.match.params.pluginid === plugin.id\n return (\n <PluginCard\n plugin={plugin}\n isConfigurator={isConfigurator(plugin)}\n key={i}\n isOpen={isOpen}\n toggleForm={this.toggleForm.bind(this, i, plugin.id)}\n history={this.props.history}\n saveData={(data) => {\n if (plugin.data.configuration === undefined) {\n data.enabled = true\n }\n this.saveData(plugin.id, data, i)\n }}\n />\n )\n })}\n </CardBody>\n </Card>\n )\n }\n\n saveData(id, data, i) {\n fetch(`${window.serverRoutesPrefix}/plugins/${id}/config`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: new Headers({ 'Content-Type': 'application/json' }),\n credentials: 'same-origin',\n }).then((response) => {\n if (response.status != 200) {\n console.error(response)\n alert('Saving plugin settings failed')\n } else {\n const plugins = [...this.state.plugins]\n plugins[i].data = data\n this.setState({ plugins })\n }\n })\n }\n}\n\nconst isConfigurator = (pluginData) =>\n pluginData.keywords.includes('signalk-plugin-configurator')\n\nclass PluginCard extends Component {\n render() {\n const labelStyle = { marginLeft: '10px', marginBottom: '0px' }\n const { schema } = this.props.plugin\n const configurationRequired =\n schema &&\n schema.properties &&\n Object.keys(schema?.properties).length != 0 &&\n this.props.plugin.data.configuration == null\n\n return (\n <div\n ref={(card) => {\n this.card = card\n }}\n >\n <Card>\n <CardHeader>\n <Row>\n <Col\n sm={4}\n onClick={this.props.toggleForm}\n className={'align-self-center'}\n >\n <i\n style={{ marginRight: '10px' }}\n className={\n 'fa fa-chevron-' + (this.props.isOpen ? 'down' : 'right')\n }\n />\n {this.props.plugin.name}\n </Col>\n {configurationRequired && !this.props.isOpen && (\n <Fragment>\n <Col sm={6} lg={3}>\n <div\n className=\"alert alert-warning mb-0 mt-2 mt-sm-0 pb-1 pt-1 btn-sm\"\n role=\"alert\"\n >\n <i className=\"fa fa-exclamation-triangle\"></i> Plugin is\n disabled, configuration missing\n </div>\n </Col>\n <Col sm={2} className={'d-none d-sm-block'}>\n <Button\n size=\"sm\"\n color=\"primary\"\n className=\"mt-0\"\n style={{ width: '100%' }}\n onClick={this.props.toggleForm}\n >\n Configure\n </Button>\n </Col>\n </Fragment>\n )}\n {!configurationRequired && (\n <Fragment>\n <Col lg={2} className={'mt-2 mt-lg-0'}>\n <Label\n style={labelStyle}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n name=\"enabled\"\n className=\"switch-input\"\n onChange={(e) => {\n this.props.saveData({\n ...this.props.plugin.data,\n enabled: !this.props.plugin.data.enabled,\n })\n }}\n checked={this.props.plugin.data.enabled}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <span className=\"ml-1\">Enabled</span>\n </Col>\n <Col lg={2} className={'mt-2 mt-lg-0'}>\n <Label\n style={labelStyle}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n name=\"enableLogging\"\n className=\"switch-input\"\n onChange={(e) => {\n this.props.saveData({\n ...this.props.plugin.data,\n enableLogging:\n !this.props.plugin.data.enableLogging,\n })\n }}\n checked={this.props.plugin.data.enableLogging}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <span className=\"ml-1\">Data logging</span>\n </Col>\n <Col lg={2} className={'mt-2 mt-lg-0'}>\n <Label\n style={labelStyle}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n name=\"enableDebug\"\n className=\"switch-input \"\n onChange={(e) => {\n this.props.saveData({\n ...this.props.plugin.data,\n enableDebug: !this.props.plugin.data.enableDebug,\n })\n }}\n checked={this.props.plugin.data.enableDebug}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <span className=\"ml-1\">Enable debug log</span>\n </Col>\n </Fragment>\n )}\n </Row>\n </CardHeader>\n {this.props.isOpen && (\n <CardBody>\n {!this.props.isConfigurator && (\n <PluginConfigurationForm\n plugin={this.props.plugin}\n onSubmit={(data) => {\n this.props.saveData(data)\n this.props.history.replace(`/serverConfiguration/plugins/-`)\n }}\n />\n )}\n {this.props.isConfigurator && (\n <EmbeddedPluginConfigurationForm {...this.props} />\n )}\n </CardBody>\n )}\n </Card>\n </div>\n )\n }\n\n componentDidMount() {\n if (this.props.isOpen) {\n window.scrollTo({ top: this.card.offsetTop - 54, behavior: 'smooth' })\n }\n }\n}\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n} from 'reactstrap'\nimport EnableSecurity from './EnableSecurity'\n\nexport function fetchSecurityConfig() {\n fetch(`${window.serverRoutesPrefix}/security/config`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ ...data, hasData: true })\n })\n}\n\nconst adminUIOrigin = `${window.location.protocol}//${window.location.host}`\n\nclass Settings extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n }\n\n this.handleChange = this.handleChange.bind(this)\n this.handleSaveConfig = this.handleSaveConfig.bind(this)\n this.fetchSecurityConfig = fetchSecurityConfig.bind(this)\n }\n\n componentDidMount() {\n if (this.props.loginStatus.authenticationRequired) {\n this.fetchSecurityConfig()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.loginStatus.authenticationRequired !=\n prevProps.loginStatus.authenticationRequired\n ) {\n this.fetchSecurityConfig()\n }\n }\n\n handleChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.setState({ [event.target.name]: value })\n }\n\n handleSaveConfig() {\n var payload = {\n allow_readonly: this.state.allow_readonly,\n expiration: this.state.expiration,\n allowNewUserRegistration: this.state.allowNewUserRegistration,\n allowDeviceAccessRequests: this.state.allowDeviceAccessRequests,\n allowedCorsOrigins: this.state.allowedCorsOrigins,\n adminUIOrigin,\n }\n fetch(`${window.serverRoutesPrefix}/security/config`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n credentials: 'include',\n })\n .then((response) => response.text())\n .then((response) => {\n this.fetchSecurityConfig()\n alert(response)\n })\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.loginStatus.authenticationRequired === false && (\n <EnableSecurity />\n )}\n {this.state.hasData &&\n this.props.loginStatus.authenticationRequired && (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n Settings\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n <FormGroup row>\n <Col xs=\"0\" md=\"3\">\n <Label>Allow Readonly Access</Label>\n </Col>\n <Col md=\"9\">\n <FormGroup check>\n <div>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"allow_readonly\"\n className=\"switch-input\"\n onChange={this.handleChange}\n checked={this.state.allow_readonly}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </div>\n </FormGroup>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"0\" md=\"3\">\n <Label>Allow New User Registration</Label>\n </Col>\n <Col md=\"9\">\n <FormGroup check>\n <div>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"allowNewUserRegistration\"\n className=\"switch-input\"\n onChange={this.handleChange}\n checked={this.state.allowNewUserRegistration}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n ></span>\n <span className=\"switch-handle\"></span>\n </Label>\n </div>\n </FormGroup>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"0\" md=\"3\">\n <Label>Allow New Device Registration</Label>\n </Col>\n <Col md=\"9\">\n <FormGroup check>\n <div>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"allowDeviceAccessRequests\"\n className=\"switch-input\"\n onChange={this.handleChange}\n checked={this.state.allowDeviceAccessRequests}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n ></span>\n <span className=\"switch-handle\"></span>\n </Label>\n </div>\n </FormGroup>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"text-input\">Remember Me timeout</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"text\"\n name=\"expiration\"\n onChange={this.handleChange}\n value={this.state.expiration}\n />\n <FormText color=\"muted\">\n Examples: 60s, 1m, 1h, 1d\n </FormText>\n </Col>\n <Col md=\"6\">\n <FormText color=\"muted\">\n How long server keeps you logged when Remember Me is\n checked in login.\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"12\">\n <Label>\n With no configuration all CORS origins are accepted,\n but client requests with credentials:include do not\n work. Add a single * origin to allow all origins with\n credentials. You can also restrict CORS requests to\n specific origins. The origin that this UI was loaded\n from is automatically added to the allowed origins so\n that requests from the UI work. Changes to the Allowed\n CORS origins requires a server restart.\n </Label>\n </Col>\n </FormGroup>{' '}\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"text-input\">Allowed CORS origins</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n type=\"text\"\n name=\"allowedCorsOrigins\"\n onChange={this.handleChange}\n value={this.state.allowedCorsOrigins}\n />\n <FormText color=\"muted\">\n Use either * or a comma delimited list of origins,\n example:\n http://host1.name.com:3000,http://host2.name.com:3000\n </FormText>\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleSaveConfig}\n >\n <i className=\"fa fa-dot-circle-o\" /> Save\n </Button>\n </CardFooter>\n </Card>\n </div>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ loginStatus }) => ({ loginStatus })\n\nexport default connect(mapStateToProps)(Settings)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n} from 'reactstrap'\nimport EnableSecurity from './EnableSecurity'\n\nexport function fetchSecurityUsers() {\n fetch(`${window.serverRoutesPrefix}/security/users`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ users: data })\n })\n}\n\nclass Users extends Component {\n constructor(props) {\n super(props)\n this.state = {}\n\n this.handleAddUser = this.handleAddUser.bind(this)\n this.fetchSecurityUsers = fetchSecurityUsers.bind(this)\n this.handleCancel = this.handleCancel.bind(this)\n this.handleApply = this.handleApply.bind(this)\n this.handleUserChange = this.handleUserChange.bind(this)\n this.deleteUser = this.deleteUser.bind(this)\n }\n\n componentDidMount() {\n if (this.props.loginStatus.authenticationRequired) {\n this.fetchSecurityUsers()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.loginStatus.authenticationRequired !=\n prevProps.loginStatus.authenticationRequired\n ) {\n this.fetchSecurityUsers()\n }\n }\n\n handleUserChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.selectedUser[event.target.name] = value\n this.setState({\n selectedUser: this.state.selectedUser,\n })\n }\n\n handleAddUser(event) {\n var newUser = {\n type: 'readonly',\n isNew: true,\n }\n this.setState(\n {\n selectedUser: newUser,\n selectedIndex: this.state.users.length - 1,\n },\n () => {\n this.refs['selectedUser'].scrollIntoView()\n }\n )\n }\n\n handleApply(event) {\n event.preventDefault()\n\n if (\n !this.state.selectedUser.userId ||\n this.state.selectedUser.userId.length == 0\n ) {\n alert('Please specify a User Id')\n return\n }\n\n if (this.state.selectedUser.password) {\n if (\n this.state.selectedUser.password !=\n this.state.selectedUser.confirmPassword\n ) {\n alert('Passwords do not match')\n return\n }\n }\n\n var isNew = this.state.selectedUser.isNew\n\n var payload = {\n password: this.state.selectedUser.password,\n type: this.state.selectedUser.type || 'readonly',\n }\n\n fetch(\n `${window.serverRoutesPrefix}/security/users/${this.state.selectedUser.userId}`,\n {\n method: isNew ? 'POST' : 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.setState({\n selectedUser: null,\n selectedIndex: -1,\n })\n alert(response)\n this.fetchSecurityUsers()\n })\n }\n\n deleteUser(event) {\n fetch(\n `${window.serverRoutesPrefix}/security/users/${this.state.selectedUser.userId}`,\n {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.setState({\n selectedUser: null,\n selectedIndex: -1,\n })\n alert(response)\n this.fetchSecurityUsers()\n })\n }\n\n userClicked(user, index) {\n this.setState(\n {\n selectedUser: JSON.parse(JSON.stringify(user)),\n selectedIndex: index,\n },\n () => {\n this.refs['selectedUser'].scrollIntoView()\n }\n )\n }\n\n handleCancel(event) {\n this.setState({ selectedUser: null })\n }\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.loginStatus.authenticationRequired === false && (\n <EnableSecurity />\n )}\n {this.state.users && this.props.loginStatus.authenticationRequired && (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n Users\n </CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>User ID</th>\n <th>Type</th>\n </tr>\n </thead>\n <tbody>\n {(this.state.users || []).map((user, index) => {\n return (\n <tr\n key={user.userId}\n onClick={this.userClicked.bind(this, user, index)}\n >\n <td>{user.userId}</td>\n <td>{convertType(user.type)}</td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n <CardFooter>\n <Button size=\"sm\" color=\"primary\" onClick={this.handleAddUser}>\n <i className=\"fa fa-plus-circle\" /> Add\n </Button>\n </CardFooter>\n </Card>\n\n {this.state.selectedUser && (\n <div ref=\"selectedUser\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n User\n </CardHeader>\n <CardBody>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"userid\">User ID</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n {this.state.selectedUser.isNew && (\n <Input\n type=\"text\"\n name=\"userId\"\n value={this.state.selectedUser.userId}\n onChange={this.handleUserChange}\n />\n )}\n {!this.state.selectedUser.isNew && (\n <Label>{this.state.selectedUser.userId}</Label>\n )}\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"password\">Password</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n type=\"password\"\n name=\"password\"\n value={this.state.selectedUser.password}\n onChange={this.handleUserChange}\n />\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"text-input\">Confirm Password</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n type=\"password\"\n name=\"confirmPassword\"\n value={this.state.selectedUser.confirmPassword}\n onChange={this.handleUserChange}\n />\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"select\">Permissions</Label>\n </Col>\n <Col xs=\"12\" md=\"2\">\n <Input\n type=\"select\"\n name=\"type\"\n value={this.state.selectedUser.type}\n onChange={this.handleUserChange}\n >\n <option value=\"readonly\">Read Only</option>\n <option value=\"readwrite\">Read/Write</option>\n <option value=\"admin\">Admin</option>\n </Input>\n </Col>\n </FormGroup>\n </CardBody>\n <CardFooter>\n <Row>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleApply}\n >\n <i className=\"fa fa-dot-circle-o\" /> Apply\n </Button>\n </Col>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"secondary\"\n onClick={this.handleCancel}\n >\n <i className=\"fa fa-ban\" /> Cancel\n </Button>\n </Col>\n <Col xs=\"4\" md=\"10\" className=\"text-right\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.deleteUser}\n >\n <i className=\"fa fa-ban\" /> Delete\n </Button>\n </Col>\n </Row>\n </CardFooter>\n </Card>\n </div>\n )}\n </div>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ loginStatus }) => ({ loginStatus })\n\nexport default connect(mapStateToProps)(Users)\n\nfunction convertType(type) {\n if (type == 'readonly') {\n return 'Read Only'\n } else if (type == 'readwrite') {\n return 'Read/Write'\n } else if (type == 'admin') {\n return 'Admin'\n }\n}\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n} from 'reactstrap'\nimport EnableSecurity from './EnableSecurity'\n\nexport function fetchSecurityDevices() {\n fetch(`${window.serverRoutesPrefix}/security/devices`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ devices: data })\n })\n}\n\nclass Devices extends Component {\n constructor(props) {\n super(props)\n this.state = {\n devices: [],\n }\n\n this.fetchSecurityDevices = fetchSecurityDevices.bind(this)\n this.handleCancel = this.handleCancel.bind(this)\n this.handleApply = this.handleApply.bind(this)\n this.handleDeviceChange = this.handleDeviceChange.bind(this)\n this.deleteDevice = this.deleteDevice.bind(this)\n }\n\n componentDidMount() {\n if (this.props.loginStatus.authenticationRequired) {\n this.fetchSecurityDevices()\n }\n }\n\n handleDeviceChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.selectedDevice[event.target.name] = value\n this.setState({\n selectedDevice: this.state.selectedDevice,\n })\n }\n\n handleApply(event) {\n event.preventDefault()\n\n var payload = {\n permissions: this.state.selectedDevice.permissions || 'readonly',\n description: this.state.selectedDevice.description,\n }\n\n fetch(\n `${window.serverRoutesPrefix}/security/devices/${this.state.selectedDevice.clientId}`,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.setState({\n selectedDevice: null,\n selectedIndex: -1,\n })\n alert(response)\n this.fetchSecurityDevices()\n })\n }\n\n deleteDevice(event) {\n fetch(\n `${window.serverRoutesPrefix}/security/devices/${this.state.selectedDevice.clientId}`,\n {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.setState({\n selectedDevice: null,\n selectedIndex: -1,\n })\n alert(response)\n this.fetchSecurityDevices()\n })\n }\n\n deviceClicked(device, index) {\n this.setState(\n {\n selectedDevice: JSON.parse(JSON.stringify(device)),\n selectedIndex: index,\n },\n () => {\n this.refs['selectedDevice'].scrollIntoView()\n }\n )\n }\n\n handleCancel(event) {\n this.setState({ selectedDevice: null })\n }\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.loginStatus.authenticationRequired === false && (\n <EnableSecurity />\n )}\n {this.props.loginStatus.authenticationRequired && (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n Devices\n </CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Client ID</th>\n <th>Description</th>\n <th>Type</th>\n </tr>\n </thead>\n <tbody>\n {(this.state.devices || []).map((device, index) => {\n return (\n <tr\n key={device.clientId}\n onClick={this.deviceClicked.bind(this, device, index)}\n >\n <td>{device.clientId}</td>\n <td>{device.description}</td>\n <td>{convertPermissions(device.permissions)}</td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n <CardFooter></CardFooter>\n </Card>\n\n {this.state.selectedDevice && (\n <div ref=\"selectedDevice\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n Device\n </CardHeader>\n <CardBody>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"clientId\">Client ID</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Label>{this.state.selectedDevice.clientId}</Label>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"description\">Description</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n size=\"60\"\n style={{ width: 'auto' }}\n type=\"text\"\n name=\"description\"\n onChange={this.handleDeviceChange}\n value={this.state.selectedDevice.description}\n />\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"select\">Permissions</Label>\n </Col>\n <Col xs=\"12\" md=\"2\">\n {!this.state.selectedDevice.requestedPermissions && (\n <Input\n type=\"select\"\n name=\"permissions\"\n value={this.state.selectedDevice.permissions}\n onChange={this.handleDeviceChange}\n >\n <option value=\"readonly\">Read Only</option>\n <option value=\"readwrite\">Read/Write</option>\n <option value=\"admin\">Admin</option>\n </Input>\n )}\n {this.state.selectedDevice.requestedPermissions && (\n <Label>\n {convertPermissions(\n this.state.selectedDevice.permissions\n )}\n </Label>\n )}\n </Col>\n </FormGroup>\n </CardBody>\n <CardFooter>\n <Row>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleApply}\n >\n <i className=\"fa fa-dot-circle-o\" /> Apply\n </Button>\n </Col>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"secondary\"\n onClick={this.handleCancel}\n >\n <i className=\"fa fa-ban\" /> Cancel\n </Button>\n </Col>\n <Col xs=\"4\" md=\"10\" className=\"text-right\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.deleteDevice}\n >\n <i className=\"fa fa-ban\" /> Delete\n </Button>\n </Col>\n </Row>\n </CardFooter>\n </Card>\n </div>\n )}\n </div>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ securityDevices }) => ({ securityDevices })\n\nexport default connect(mapStateToProps)(Devices)\n\nfunction convertPermissions(type) {\n if (type == 'readonly') {\n return 'Read Only'\n } else if (type == 'readwrite') {\n return 'Read/Write'\n } else if (type == 'admin') {\n return 'Admin'\n }\n}\n","import React, { Component } from 'react'\nimport {\n Container,\n Row,\n Col,\n Card,\n CardBody,\n CardFooter,\n Button,\n Form,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n} from 'reactstrap'\n\nclass Register extends Component {\n constructor(props) {\n super(props)\n this.state = {\n errorMessage: null,\n email: '',\n password: '',\n confirmPassword: '',\n registrationSent: false,\n }\n this.handleInputChange = this.handleInputChange.bind(this)\n this.handleCreate = this.handleCreate.bind(this)\n }\n\n handleInputChange(event) {\n var targetName = event.target.name\n this.setState({ [event.target.name]: event.target.value }, () => {\n if (\n targetName === 'password' ||\n (targetName === 'confirmPassword' &&\n this.state.password != this.state.confirmPassword)\n ) {\n this.setState({ errorMessage: 'Passwords do not match' })\n } else {\n this.setState({ errorMessage: null })\n }\n })\n }\n\n handleCreate(event) {\n if (this.state.email.length == 0) {\n this.setState({ errorMessage: 'Please enter an email address' })\n } else if (\n this.state.password.length == 0 &&\n this.state.confirmPassword.length == 0\n ) {\n this.setState({ errorMessage: 'Please enter and conform your password' })\n } else if (this.state.password != this.state.confirmPassword) {\n //error message is already thwre\n return\n } else {\n var payload = {\n userId: this.state.email,\n password: this.state.password,\n }\n fetch(`/signalk/v1/access/requests`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n credentials: 'include',\n }).then((response) => {\n if (response.status != 202) {\n response.json().then((json) => {\n this.setState({\n errorMessage: json.message ? json.message : json.result,\n })\n })\n } else {\n this.setState({ registrationSent: true })\n }\n })\n }\n }\n\n render() {\n return (\n <div>\n <Container>\n <Row className=\"justify-content-center\">\n <Col md=\"6\">\n <Card className=\"mx-4\">\n <CardBody className=\"p-4\">\n <h1>Register</h1>\n {this.state.registrationSent && (\n <p className=\"text-muted\">\n Your registration has been sent\n </p>\n )}\n {!this.state.registrationSent && (\n <Form>\n <p className=\"text-muted\">Create your account</p>\n <InputGroup className=\"mb-3\">\n <InputGroupAddon addonType=\"prepend\">\n <InputGroupText>@</InputGroupText>\n </InputGroupAddon>\n <Input\n name=\"email\"\n type=\"text\"\n placeholder=\"Email\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <InputGroup className=\"mb-3\">\n <InputGroupAddon addonType=\"prepend\">\n <InputGroupText>\n <i className=\"icon-lock\" />\n </InputGroupText>\n </InputGroupAddon>\n <Input\n name=\"password\"\n type=\"password\"\n placeholder=\"Password\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <InputGroup className=\"mb-0\">\n <InputGroupAddon addonType=\"prepend\">\n <InputGroupText>\n <i className=\"icon-lock\" />\n </InputGroupText>\n </InputGroupAddon>\n <Input\n name=\"confirmPassword\"\n type=\"password\"\n placeholder=\"Repeat password\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n {this.state.errorMessage && (\n <p className=\"text-danger mt-3 mb-0\">\n {this.state.errorMessage}\n </p>\n )}\n </Form>\n )}\n </CardBody>\n {!this.state.registrationSent && (\n <CardFooter className=\"p-4\">\n <Row>\n <Col xs=\"12\" sm=\"12\">\n <Button\n color=\"success\"\n block\n onClick={this.handleCreate}\n >\n Create Account\n </Button>\n </Col>\n </Row>\n </CardFooter>\n )}\n </Card>\n </Col>\n </Row>\n </Container>\n </div>\n )\n }\n}\n\nexport default Register\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n} from 'reactstrap'\nimport EnableSecurity from './EnableSecurity'\n\nclass AccessRequests extends Component {\n constructor(props) {\n super(props)\n this.state = {\n selectedRequest: null,\n accessRequestsApproving: [],\n accessRequestsDenying: [],\n }\n this.handleRequestChange = this.handleRequestChange.bind(this)\n }\n\n handleAccessRequest(identifier, approved) {\n var stateKey = approved\n ? 'accessRequestsApproving'\n : 'accessRequestsDenying'\n this.state[stateKey].push(identifier)\n this.setState({ stateKey: this.state })\n\n var payload = {\n permissions: this.state.selectedRequest.permissions || 'readonly',\n config: this.state.selectedRequest.config,\n expiration: this.state.selectedRequest.expiration || '1y',\n }\n\n fetch(\n `${window.serverRoutesPrefix}/security/access/requests/${identifier}/${\n approved ? 'approved' : 'denied'\n }`,\n {\n method: 'PUT',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.state[stateKey] = this.state[stateKey].filter(\n (id) => id != identifier\n )\n this.setState({\n stateKey: this.state[stateKey],\n selectedRequest: null,\n })\n })\n }\n\n requestClicked(event, request, index) {\n this.setState(\n {\n selectedRequest: JSON.parse(JSON.stringify(request)),\n selectedIndex: index,\n },\n () => {\n this.refs['selectedRequest'].scrollIntoView()\n }\n )\n }\n\n handleRequestChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.selectedRequest[event.target.name] = value\n this.setState({\n selectedRequest: this.state.selectedRequest,\n })\n }\n handleCancel(event) {\n this.setState({ selectedRequest: null })\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.loginStatus.authenticationRequired === false && (\n <EnableSecurity />\n )}\n {this.props.loginStatus.authenticationRequired && (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\"></i>Access Requests\n </CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Identifier</th>\n <th>Description</th>\n <th>Source IP</th>\n </tr>\n </thead>\n <tbody>\n {(this.props.accessRequests || []).map((req, index) => {\n return (\n <tr\n key={req.accessIdentifier}\n onClick={this.requestClicked.bind(\n this,\n event,\n req,\n index\n )}\n >\n <td>{req.accessIdentifier}</td>\n <td>{req.accessDescription}</td>\n <td>{req.ip}</td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n </Card>\n\n {this.state.selectedRequest && (\n <div ref=\"selectedRequest\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\"></i>Request\n </CardHeader>\n <CardBody>\n <FormGroup row>\n <Col md=\"4\" lg=\"2\">\n <Label>Identifier</Label>\n </Col>\n <Col xs=\"12\" md=\"8\">\n <Label>\n {this.state.selectedRequest.accessIdentifier}\n </Label>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"4\" lg=\"2\">\n <Label>Description</Label>\n </Col>\n <Col xs=\"12\" md=\"8\">\n <Label>\n {this.state.selectedRequest.accessDescription}\n </Label>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"4\" lg=\"2\">\n <Label htmlFor=\"text-input\">\n Authentication Timeout\n </Label>\n </Col>\n <Col xs=\"12\" md=\"8\" lg=\"3\">\n <Input\n type=\"text\"\n name=\"expiration\"\n onChange={this.handleRequestChange}\n value={this.state.selectedRequest.expiration}\n />\n <FormText color=\"muted\">\n Examples: 60s, 1m, 1h, 1d, NEVER\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"4\" lg=\"2\">\n <Label htmlFor=\"select\">Permissions</Label>\n </Col>\n <Col xs=\"12\" md=\"8\" lg=\"3\">\n {!this.state.selectedRequest.requestedPermissions && (\n <Input\n type=\"select\"\n name=\"permissions\"\n value={this.state.selectedRequest.permissions}\n onChange={this.handleRequestChange}\n >\n <option value=\"readonly\">Read Only</option>\n <option value=\"readwrite\">Read/Write</option>\n <option value=\"admin\">Admin</option>\n </Input>\n )}\n {this.state.selectedRequest.requestedPermissions && (\n <Label>\n {convertPermissions(\n this.state.selectedRequest.permissions\n )}\n </Label>\n )}\n </Col>\n </FormGroup>\n </CardBody>\n <CardFooter>\n <Row\n className={\n 'ml-0 mr-0 d-flex justify-content-between justify-content-sm-start'\n }\n >\n <Col xs=\"4\" md=\"4\" lg=\"2\" className={'pl-0 pr-0 pr-md-2'}>\n <Button\n size=\"md\"\n color=\"success\"\n onClick={this.handleAccessRequest.bind(\n this,\n this.state.selectedRequest.accessIdentifier,\n true\n )}\n >\n <i\n className={\n this.state.accessRequestsApproving.indexOf(\n this.state.selectedRequest.accessIdentifier\n ) != -1\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-check'\n }\n ></i>{' '}\n Approve\n </Button>\n </Col>\n <Col\n xs=\"4\"\n md=\"8\"\n lg=\"3\"\n className={'pl-2 pl-lg-1 pr-0 pr-md-2'}\n >\n <Button\n size=\"md\"\n color=\"danger\"\n className=\"float-right float-sm-left\"\n onClick={this.handleAccessRequest.bind(\n this,\n this.state.selectedRequest.accessIdentifier,\n false\n )}\n >\n <i\n className={\n this.state.accessRequestsDenying.indexOf(\n this.state.selectedRequest.accessIdentifier\n ) != -1\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-ban'\n }\n ></i>{' '}\n Deny\n </Button>\n </Col>\n </Row>\n </CardFooter>\n </Card>\n </div>\n )}\n </div>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ accessRequests, loginStatus }) => ({\n accessRequests,\n loginStatus,\n})\n\nexport default connect(mapStateToProps)(AccessRequests)\n\nfunction convertPermissions(type) {\n if (type == 'readonly') {\n return 'Read Only'\n } else if (type == 'readwrite') {\n return 'Read/Write'\n } else if (type == 'admin') {\n return 'Admin'\n } else {\n return `Unknown ${type}`\n }\n}\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n} from 'reactstrap'\n\nfunction fetchVessel() {\n fetch(`${window.serverRoutesPrefix}/vessel`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ ...data, hasData: true })\n })\n}\n\nclass VesselConfiguration extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n }\n\n this.fetchVessel = fetchVessel.bind(this)\n this.handleChange = this.handleChange.bind(this)\n this.handleSaveVessel = this.handleSaveVessel.bind(this)\n }\n\n componentDidMount() {\n this.fetchVessel()\n }\n\n handleChange(event) {\n console.log(event)\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.setState({ [event.target.name]: value })\n }\n\n handleSaveVessel() {\n fetch(`${window.serverRoutesPrefix}/vessel`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(this.state),\n credentials: 'include',\n })\n .then((response) => response.text())\n .then((response) => {\n alert(response)\n })\n }\n\n render() {\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n <strong>Vessel Base Data</strong>\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"name\">Name</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"name\"\n onChange={this.handleChange}\n value={this.state.name}\n />\n <FormText color=\"muted\">The name of the vessel</FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"mmsi\">MMSI</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"mmsi\"\n onChange={this.handleChange}\n value={this.state.mmsi}\n />\n <FormText color=\"muted\">\n Leave blank if there is no mmsi\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"callsignVhf\">Call Sign</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"callsignVhf\"\n onChange={this.handleChange}\n value={this.state.callsignVhf}\n />\n <FormText color=\"muted\">\n Leave blank if there is no call sign\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"uuid\">UUID</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"uuid\"\n onChange={this.handleChange}\n value={this.state.uuid}\n />\n <FormText color=\"muted\">Ignored if MMSI is set</FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"aisShipType\">Ship Type</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"select\"\n name=\"aisShipType\"\n value={this.state.aisShipType}\n onChange={this.handleChange}\n >\n <option value=\"20\">Wing In Ground</option>\n <option value=\"29\">\n Wing In Ground (no other information)\n </option>\n <option value=\"30\">Fishing</option>\n <option value=\"31\">Towing</option>\n <option value=\"32\">\n Towing exceeds 200m or wider than 25m\n </option>\n <option value=\"33\">\n Engaged in dredging or underwater operations\n </option>\n <option value=\"34\">Engaged in diving operations</option>\n <option value=\"35\">Engaged in military operations</option>\n <option value=\"36\">Sailing</option>\n <option value=\"37\">Pleasure</option>\n <option value=\"40\">High speed craft</option>\n <option value=\"41\">\n High speed craft carrying dangerous goods\n </option>\n <option value=\"42\">High speed craft hazard cat B</option>\n <option value=\"43\">High speed craft hazard cat C</option>\n <option value=\"44\">High speed craft hazard cat D</option>\n <option value=\"49\">\n High speed craft (no additional information)\n </option>\n <option value=\"50\">Pilot vessel</option>\n <option value=\"51\">SAR</option>\n <option value=\"52\">Tug</option>\n <option value=\"53\">Port tender</option>\n <option value=\"54\">Anti-pollution</option>\n <option value=\"55\">Law enforcement</option>\n <option value=\"56\">Spare</option>\n <option value=\"57\">Spare #2</option>\n <option value=\"58\">Medical</option>\n <option value=\"59\">RR Resolution No.1</option>\n <option value=\"60\">Passenger ship</option>\n <option value=\"69\">\n Passenger ship (no additional information)\n </option>\n <option value=\"70\">Cargo ship</option>\n <option value=\"71\">\n Cargo ship carrying dangerous goods\n </option>\n <option value=\"72\">Cargo ship hazard cat B</option>\n <option value=\"73\">Cargo ship hazard cat C</option>\n <option value=\"74\">Cargo ship hazard cat D</option>\n <option value=\"79\">\n Cargo ship (no additional information)\n </option>\n <option value=\"80\">Tanker</option>\n <option value=\"81\">\n Tanker carrying dangerous goods\n </option>\n <option value=\"82\">Tanker hazard cat B</option>\n <option value=\"83\">Tanker hazard cat C</option>\n <option value=\"84\">Tanker hazard cat D</option>\n <option value=\"89\">\n Tanker (no additional information)\n </option>\n <option value=\"90\">Other</option>\n <option value=\"91\">Other carrying dangerous goods</option>\n <option value=\"92\">Other hazard cat B</option>\n <option value=\"93\">Other hazard cat C</option>\n <option value=\"94\">Other hazard cat D</option>\n <option value=\"99\">\n Other (no additional information)\n </option>\n </Input>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"draft\">Draft</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"draft\"\n onChange={this.handleChange}\n value={this.state.draft}\n />\n <FormText color=\"muted\">\n The maximum draft in meters of the vessel\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"length\">Length</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"length\"\n onChange={this.handleChange}\n value={this.state.length}\n />\n <FormText color=\"muted\">\n The overall length of the vessel in meters\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"beam\">Beam</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"beam\"\n onChange={this.handleChange}\n value={this.state.beam}\n />\n <FormText color=\"muted\">\n The beam of the vessel in meters\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"height\">Height</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"height\"\n onChange={this.handleChange}\n value={this.state.height}\n />\n <FormText color=\"muted\">\n The total height of the vessel in meters{' '}\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"gpsFromBow\">GPS Distance From Bow</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"gpsFromBow\"\n onChange={this.handleChange}\n value={this.state.gpsFromBow}\n />\n <FormText color=\"muted\">\n The distance of the gps receiver from the bow in meters\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"gpsFromCenter\">\n GPS Distance From Center\n </Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"gpsFromCenter\"\n onChange={this.handleChange}\n value={this.state.gpsFromCenter}\n />\n <FormText color=\"muted\">\n The distance from the center of vessel of the gps receiver\n in meters\n </FormText>\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button size=\"sm\" color=\"primary\" onClick={this.handleSaveVessel}>\n <i className=\"fa fa-dot-circle-o\" /> Save\n </Button>\n </CardFooter>\n </Card>\n </div>\n )\n )\n }\n}\n\nexport default connect()(VesselConfiguration)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Table,\n Input,\n Button,\n Card,\n CardBody,\n CardHeader,\n FormText,\n Label,\n} from 'reactstrap'\n\nclass N2KFilters extends Component {\n constructor(props) {\n super()\n\n this.handleAddFilter = this.handleAddFilter.bind(this)\n this.handleEnabledChange = this.handleEnabledChange.bind(this)\n }\n\n filterChanged(filter, event) {\n filter[event.target.name] = event.target.value\n this.props.onChange(event)\n }\n\n deleteFilter(index, event) {\n this.props.value.options.filters.splice(index, 1)\n this.props.onChange(event)\n }\n\n handleEnabledChange(event) {\n this.props.value.options.filtersEnabled = event.target.checked\n this.props.onChange(event)\n }\n\n handleAddFilter(event) {\n if (!this.props.value.options.filters) {\n this.props.value.options.filters = []\n }\n this.props.value.options.filters.push({ source: '', pgn: '' })\n this.props.onChange(event)\n }\n\n render() {\n const sourceName = this.props.value.options.useCanName\n ? 'Can NAME'\n : 'Address'\n return (\n <div>\n <Card>\n <CardHeader>Filters</CardHeader>\n <CardBody>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"filtersEnabled\"\n className=\"switch-input\"\n checked={this.props.value.options.filtersEnabled}\n onChange={this.handleEnabledChange}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n Enabled <br />\n <br />\n Filter out all messages from a specific {sourceName} by entering\n just the {sourceName}.<br />\n Filter out a specific PGN from all devices by entering just the PGN.\n <br />\n Filter out a specific PGN from a specific {sourceName} by entering\n both.\n <br />\n <br />\n {this.props.value.options.filters &&\n this.props.value.options.filters.length > 0 && (\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>{sourceName}</th>\n <th>PGN</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {this.props.value.options.filters.map((filter, index) => {\n return (\n <tr key={index}>\n <td>\n <Input\n type=\"text\"\n name=\"source\"\n value={filter.source}\n onChange={this.filterChanged.bind(this, filter)}\n />\n </td>\n <td>\n <Input\n type=\"text\"\n name=\"pgn\"\n value={filter.pgn}\n onChange={this.filterChanged.bind(this, filter)}\n />\n </td>\n <td>\n <Button\n color=\"link\"\n className=\"text-danger\"\n onClick={this.deleteFilter.bind(this, index)}\n >\n <i className=\"fas fa-trash\" />\n </Button>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n )}\n <Button size=\"sm\" color=\"primary\" onClick={this.handleAddFilter}>\n <i className=\"fa fa-plus-circle\" /> Add\n </Button>\n </CardBody>\n </Card>\n </div>\n )\n }\n}\n\nexport default N2KFilters\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport { Input, FormGroup, FormText, Col, Label } from 'reactstrap'\nimport N2KFilters from './N2KFilters'\n\nclass BasicProvider extends Component {\n constructor(props) {\n super()\n this.state = {\n hasAnalyzer: false,\n }\n }\n\n componentDidMount() {\n fetch(`${window.serverRoutesPrefix}/hasAnalyzer`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((value) => {\n this.setState({ hasAnalyzer: value })\n })\n }\n\n render() {\n const lookup = {\n NMEA2000: NMEA2000,\n NMEA0183: NMEA0183,\n SignalK: SignalK,\n Seatalk: Seatalk,\n FileStream: FileStream,\n }\n let TypeComponent = lookup[this.props.value.type] || (() => null)\n\n return (\n <div>\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label htmlFor=\"select\">Data Type</Label>\n </Col>\n <Col xs=\"6\" md=\"3\">\n {this.props.value.isNew ? (\n <Input\n type=\"select\"\n value={this.props.value.type}\n name=\"type\"\n onChange={(event) => this.props.onChange(event)}\n >\n <option value=\"NMEA2000\">NMEA 2000</option>\n <option value=\"NMEA0183\">NMEA 0183</option>\n <option value=\"SignalK\">Signal K</option>\n <option value=\"Seatalk\">Seatalk (GPIO)</option>\n <option value=\"FileStream\">File Stream</option>\n </Input>\n ) : (\n this.props.value.type\n )}\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Enabled</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"enabled\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.enabled}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n {this.props.value.type !== 'FileStream' && (\n <LoggingInput\n value={this.props.value}\n onChange={this.props.onChange}\n />\n )}\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"id\">ID</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"text\"\n name=\"id\"\n value={this.props.value.id}\n disabled={!this.props.value.isNew}\n onChange={(event) => {\n const dummyEvent = {\n target: {\n name: event.target.name,\n type: event.target.type,\n value: (event.target.value || '').replace(\n /[^a-zA-Z\\d-_]/g,\n ''\n ),\n },\n }\n this.props.onChange(dummyEvent)\n }}\n />\n </Col>\n </FormGroup>\n <TypeComponent\n value={this.props.value}\n onChange={this.props.onChange}\n hasAnalyzer={this.state.hasAnalyzer}\n />\n <OverrideTimestamps\n value={this.props.value.options}\n onChange={this.props.onChange}\n />\n\n {this.props.value.type === 'NMEA2000' && (\n <N2KFilters\n value={this.props.value}\n onChange={this.props.onPropChange}\n />\n )}\n </div>\n )\n }\n}\n\nexport default BasicProvider\n\nclass TextInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor={this.props.name}>{this.props.title}</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"text\"\n name={this.props.name}\n value={this.props.value}\n onChange={(event) => this.props.onChange(event)}\n />\n {this.props.helpText && (\n <FormText color=\"muted\">{this.props.helpText}</FormText>\n )}\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass TextAreaInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor={this.props.name}>{this.props.title}</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"textarea\"\n name={this.props.name}\n value={this.props.value}\n rows={this.props.rows}\n onChange={(event) => this.props.onChange(event)}\n />\n {this.props.helpText && (\n <FormText color=\"muted\">{this.props.helpText}</FormText>\n )}\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass DeviceInput extends Component {\n constructor(props) {\n super()\n this.state = {\n devices: {},\n }\n }\n\n componentDidMount() {\n fetch(`${window.serverRoutesPrefix}/serialports`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n data.serialports = data.serialports.map((portInfo) => portInfo.path)\n this.setState({\n devices: data,\n })\n })\n }\n\n render() {\n const isManualEntry = !isListedDevice(\n this.props.value.device,\n this.state.devices\n )\n let manualEntryValue = isManualEntry\n ? this.props.value.device === 'Enter manually'\n ? ''\n : this.props.value.device\n : ''\n return (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"serialportselect\">Serial port</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n name=\"options.device\"\n id=\"serialportselect\"\n onChange={this.props.onChange}\n helpText=\"help me\"\n value={isManualEntry ? 'Enter manually' : this.props.value.device}\n >\n <option key=\"enterManually\">Enter manually</option>\n {serialportListOptions(\n ['byOpenPlotter', 'byId', 'byPath', 'serialports'],\n ['OpenPlotter managed:', 'by-id:', 'by-path:', 'Listed:'],\n this.state.devices\n )}\n </Input>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"text\"\n name=\"options.device\"\n disabled={!isManualEntry}\n value={manualEntryValue || ''}\n onChange={(event) => this.props.onChange(event)}\n />\n </Col>\n </FormGroup>\n )\n }\n}\n\nconst isListedDevice = (device, deviceListMap) => {\n const list = Object.keys(deviceListMap).reduce((acc, key) => {\n return acc.concat(deviceListMap[key])\n }, [])\n return list.includes(device)\n}\n\nconst serialportListOptions = (keys, labels, deviceListMap) => {\n return keys.reduce((acc, key, j) => {\n if (deviceListMap[key] && deviceListMap[key].length > 0) {\n acc.push(\n <option disabled=\"true\" key={key}>\n {labels[j]}\n </option>\n )\n deviceListMap[key].forEach((device, i) => {\n acc.push(<option key={`${key}${i}`}>{device}</option>)\n })\n }\n return acc\n }, [])\n}\n\nclass LoggingInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Data Logging</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"logging\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.logging}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass ValidateChecksumInput extends Component {\n constructor(props) {\n super(props)\n this.props.value.validateChecksum =\n typeof this.props.value.validateChecksum === 'undefined' ||\n this.props.value.validateChecksum\n }\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Validate Checksum</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.validateChecksum\"\n className=\"switch-input\"\n onChange={(event) => {\n this.props.onChange(event)\n if (this.props.value.validateChecksum) {\n this.props.value.appendChecksum = false\n }\n }}\n checked={this.props.value.validateChecksum}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass OverrideTimestamps extends Component {\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Override timestamps</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.overrideTimestamp\"\n className=\"switch-input\"\n onChange={this.props.onChange}\n checked={this.props.value.overrideTimestamp}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass RemoveNullsInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Remove NULL characters</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.removeNulls\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.removeNulls}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass AppendChecksum extends Component {\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Append Checksum</Label>\n </Col>\n <Col xs=\"2\" md=\"1\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.appendChecksum\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={\n this.props.value.appendChecksum &&\n !this.props.value.validateChecksum\n }\n disabled={!!this.props.value.validateChecksum}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n <Col xs=\"12\" md=\"6\">\n {this.props.value.validateChecksum && (\n <label className=\"text-muted small\">\n Turn Validate Checksum OFF to enable appending the checksum\n </label>\n )}\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass SentenceEventInput extends Component {\n render() {\n return (\n <TextInput\n title=\"Input Event\"\n name=\"options.sentenceEvent\"\n helpText=\"Additional event name for incoming sentences. Example: nmea1data\"\n value={this.props.value.sentenceEvent}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass DataTypeInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"dataType\">Data Type</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"select\"\n value={this.props.value.options.dataType}\n name=\"options.dataType\"\n onChange={(event) => this.props.onChange(event)}\n >\n {!this.props.value.options.dataType && (\n <option value=\"\">Select data type</option>\n )}\n <option value=\"SignalK\">Signal K</option>\n <option value=\"NMEA2000JS\">Actisense NMEA 2000 (canboatjs)</option>\n <option value=\"NMEA2000IK\">iKonvert NMEA 2000 (canboatjs)</option>\n <option value=\"NMEA2000YD\">\n Yacht Devices YDGW-02 NMEA 2000 (canboatjs)\n </option>\n <option value=\"NMEA2000\" disabled={!this.props.hasAnalyzer}>\n NMEA 2000 (canboat)\n </option>\n <option value=\"NMEA0183\">NMEA 0183</option>\n {this.props.value.type === 'FileStream' && (\n <option value=\"Multiplexed\">Multiplexed Log</option>\n )}\n </Input>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass BaudRateIntput extends Component {\n render() {\n return (\n <TextInput\n title=\"Baud Rate\"\n name=\"options.baudrate\"\n helpText=\"Example: 4800\"\n value={this.props.value.baudrate}\n onChange={(event) => this.props.onChange(event, 'number')}\n />\n )\n }\n}\n\nclass BaudRateIntputCanboat extends Component {\n constructor(props) {\n super(props)\n this.props.value.baudrate =\n this.props.value.baudrate ||\n (this.props.value.type === 'ikonvert-canboatjs' ? 230400 : 115200)\n }\n\n render() {\n return (\n <TextInput\n title=\"Baud Rate\"\n name=\"options.baudrate\"\n value={this.props.value.baudrate}\n onChange={(event) => this.props.onChange(event, 'number')}\n />\n )\n }\n}\n\nclass StdOutInput extends Component {\n constructor(props) {\n super()\n this.state = StdOutInput.getDerivedStateFromProps(props)\n this.onChange = this.onChange.bind(this)\n }\n\n static getDerivedStateFromProps(props) {\n let value = props.value.toStdout\n if (Array.isArray(value)) {\n value = value.join(',')\n }\n return { value }\n }\n onChange(e) {\n this.setState({ value: e.target.value })\n this.props.onChange({\n target: {\n type: e.target.type,\n name: e.target.name,\n value: e.target.value.split(','),\n },\n })\n }\n render() {\n return (\n <TextInput\n title=\"Output Events\"\n name=\"options.toStdout\"\n helpText=\"Events that should be written as output to this connection. Example: nmea0183,nmea0183out\"\n value={this.state.value}\n onChange={this.onChange}\n />\n )\n }\n}\n\nclass IgnoredSentences extends Component {\n constructor(props) {\n super()\n this.onChange = this.onChange.bind(this)\n this.state = IgnoredSentences.getDerivedStateFromProps(props)\n }\n\n static getDerivedStateFromProps(props) {\n let value = props.value.ignoredSentences\n if (Array.isArray(value)) {\n value = value.join(',')\n }\n return { value }\n }\n\n onChange(e) {\n this.setState({ value: e.target.value })\n this.props.onChange({\n target: {\n type: e.target.type,\n name: e.target.name,\n value: e.target.value.split(','),\n },\n })\n }\n render() {\n return (\n <TextInput\n title=\"Ignored Sentences\"\n name=\"options.ignoredSentences\"\n helpText=\"NMEA0183 sentences to throw away from the input data. Example: RMC,ROT\"\n value={this.state.value}\n onChange={this.onChange}\n />\n )\n }\n}\n\nclass PortInput extends Component {\n render() {\n return (\n <TextInput\n title=\"Port\"\n name=\"options.port\"\n helpText=\"Example: 4123\"\n value={this.props.value.port}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass HostInput extends Component {\n render() {\n return (\n <TextInput\n title=\"Host\"\n name=\"options.host\"\n helpText=\"Example: localhost\"\n value={this.props.value.host}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass NoDataReceivedTimeoutInput extends Component {\n render() {\n return (\n <TextInput\n title=\"No data timeout\"\n name=\"options.noDataReceivedTimeout\"\n helpText=\"Timeout for no data received in seconds. Socket is disconnected and reconnection attempted if timeout is reached. Leave empty or 0 to disable.\"\n value={this.props.value.noDataReceivedTimeout}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass RemoteSelfInput extends Component {\n render() {\n return (\n <TextInput\n title=\"Remote 'self' to use\"\n name=\"options.remoteSelf\"\n helpText=\"like vessels.urn:mrn:signalk:uuid:f6d9f041-4e61-4335-82c0-7a51fb10ae86 OR vessels.urn:mrn:imo:mmsi:230099999\"\n value={this.props.value.remoteSelf}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass Suppress0183Checkbox extends Component {\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Suppress nmea0183 event</Label>\n </Col>\n <Col xs=\"1\" md=\"1\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.suppress0183event\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.suppress0183event}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n <Col xs=\"12\" md=\"6\">\n <label className=\"text-muted small\">\n Supress sending the default nmea0183 event for incoming sentences\n </label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass UseCanNameInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Use Can NAME in source data</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.useCanName\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.useCanName}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass CollectNetworkStatsInput extends Component {\n constructor(props) {\n super(props)\n }\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Collect Network Statistics</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.sendNetworkStats\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.sendNetworkStats}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nconst NMEA2000 = (props) => {\n return (\n <div>\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"options.type\">NMEA 2000 Source</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={props.value.options.type || 'none'}\n name=\"options.type\"\n onChange={(event) => props.onChange(event)}\n >\n <option value=\"none\">Select a source</option>\n <option value=\"ngt-1-canboatjs\">Actisense NGT-1 (canboatjs)</option>\n <option value=\"ngt-1\" disabled={!props.hasAnalyzer}>\n Actisense NGT-1 (canboat)\n </option>\n <option value=\"ikonvert-canboatjs\">iKonvert (canboatjs)</option>\n <option value=\"navlink2-tcp-canboatjs\">NavLink2 (canboatjs)</option>\n\n <option value=\"ydwg02-canboatjs\">\n Yacht Devices RAW TCP (canboatjs)\n </option>\n <option value=\"ydwg02-udp-canboatjs\">\n Yacht Devices RAW UDP (canboatjs)\n </option>\n <option value=\"ydwg02-usb-canboatjs\">\n Yacht Devices RAW USB (canboatjs)\n </option>\n <option value=\"canbus-canboatjs\">Canbus (canboatjs)</option>\n <option value=\"w2k-1-n2k-ascii-canboatjs\">\n W2K-1 N2K ASCII (canboatjs)\n </option>\n <option value=\"w2k-1-n2k-actisense-canboatjs\">\n W2K-1 N2K ACTISENSE (canboatjs)\n </option>\n <option value=\"canbus\" disabled={!props.hasAnalyzer}>\n Canbus (canboat)\n </option>\n </Input>\n </Col>\n </FormGroup>\n {(props.value.options.type === 'ngt-1' ||\n props.value.options.type === 'ngt-1-canboatjs' ||\n props.value.options.type === 'ydwg02-usb-canboatjs' ||\n props.value.options.type === 'ikonvert-canboatjs') && (\n <div>\n <DeviceInput value={props.value.options} onChange={props.onChange} />\n <BaudRateIntputCanboat\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n )}\n {props.value.options.type === 'ydwg02-canboatjs' && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n <NoDataReceivedTimeoutInput\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n )}\n {props.value.options.type === 'ydwg02-udp-canboatjs' && (\n <div>\n <PortInput value={props.value.options} onChange={props.onChange} />\n </div>\n )}\n {props.value.options.type === 'navlink2-tcp-canboatjs' && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n <NoDataReceivedTimeoutInput\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n )}\n {(props.value.options.type === 'canbus' ||\n props.value.options.type === 'canbus-canboatjs') && (\n <TextInput\n title=\"Interface\"\n name=\"options.interface\"\n helpText=\"Example: can0\"\n value={props.value.options.interface}\n onChange={props.onChange}\n />\n )}\n {(props.value.options.type === 'ngt-1-canboatjs' ||\n props.value.options.type === 'ikonvert-canboatjs' ||\n props.value.options.type === 'navlink2-tcp-canboatjs') && (\n <CollectNetworkStatsInput\n value={props.value.options}\n onChange={props.onChange}\n />\n )}\n {(props.value.options.type === 'w2k-1-n2k-ascii-canboatjs' ||\n props.value.options.type === 'w2k-1-n2k-actisense-canboatjs') && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n <NoDataReceivedTimeoutInput\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n )}\n <UseCanNameInput value={props.value.options} onChange={props.onChange} />\n </div>\n )\n}\n\nconst NMEA0183 = (props) => {\n return (\n <div>\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"options.type\">NMEA 0183 Source</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={props.value.options.type}\n name=\"options.type\"\n onChange={(event) => props.onChange(event)}\n >\n <option>Select a source</option>\n <option value=\"serial\">Serial</option>\n <option value=\"tcp\">TCP Client</option>\n <option value=\"tcpserver\">TCP Server on port 10110</option>\n <option value=\"udp\">UDP</option>\n <option value=\"gpsd\">GPSD</option>\n </Input>\n </Col>\n {props.value.options.type === 'serial' && (\n <Col xs=\"12\" md=\"6\">\n Serial ports are bidirectional. Input from the connection is parsed\n as NMEA0183. Configure Output Events below to connect server's\n NMEA0183 data for output.\n </Col>\n )}\n {props.value.options.type === 'tcpserver' && (\n <Col xs=\"12\" md=\"6\">\n Accept input from clients connected to the default TCP/10110\n NMEA0183 server\n </Col>\n )}\n </FormGroup>\n {serialParams(props)}\n {(props.value.options.type === 'tcp' ||\n props.value.options.type === 'gpsd') && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n <StdOutInput value={props.value.options} onChange={props.onChange} />\n <NoDataReceivedTimeoutInput\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n )}\n <div>\n <Suppress0183Checkbox\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n {props.value.options.type === 'udp' && (\n <PortInput value={props.value.options} onChange={props.onChange} />\n )}\n <SentenceEventInput\n value={props.value.options}\n onChange={props.onChange}\n />\n <ValidateChecksumInput\n value={props.value.options}\n onChange={props.onChange}\n />\n <AppendChecksum value={props.value.options} onChange={props.onChange} />\n <RemoveNullsInput value={props.value.options} onChange={props.onChange} />\n <IgnoredSentences value={props.value.options} onChange={props.onChange} />\n </div>\n )\n}\n\nconst SignalK = (props) => {\n return (\n <div>\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"options.type\">SignalK Source</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={props.value.options.type}\n name=\"options.type\"\n onChange={(event) => props.onChange(event)}\n disabled={props.value.options.useDiscovery}\n helpText=\"afoo\"\n >\n <option>Select a source</option>\n <option value=\"serial\">Serial</option>\n <option value=\"ws\">WebSocket</option>\n <option value=\"wss\">WebSocket SSL</option>\n <option value=\"tcp\">TCP</option>\n <option value=\"udp\">UDP</option>\n </Input>\n </Col>\n </FormGroup>\n {props.value.options.useDiscovery && (\n <p className=\"text-danger\">\n This connection is deprecated, please delete it and recreate it with\n the connection automatically discovered at the top of the page.\n </p>\n )}\n {!props.value.options.useDiscovery &&\n (props.value.options.type === 'ws' ||\n props.value.options.type === 'wss' ||\n props.value.options.type === 'tcp') && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n {props.value.options.type === 'wss' && (\n <FormGroup row>\n <Col xs=\"0\" md=\"3\">\n <Label>Allow self signed certificates</Label>\n </Col>\n <Col xs=\"12\" md=\"8\">\n <div key={name}>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"options.selfsignedcert\"\n name=\"options.selfsignedcert\"\n className=\"switch-input\"\n onChange={props.onChange}\n checked={props.value.options.selfsignedcert}\n disabled={!(props.value.options.type === 'wss')}\n />\n <span\n className=\"switch-label\"\n data-on=\"On\"\n data-off=\"Off\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </div>\n </Col>\n </FormGroup>\n )}\n {(props.value.options.type === 'ws' ||\n props.value.options.type === 'wss') && (\n <div>\n <TextAreaInput\n title=\"Subscription\"\n name=\"options.subscription\"\n rows=\"6\"\n value={props.value.options.subscription}\n onChange={(event) => props.onChange(event, 'jsonstring')}\n helpText=\"Defaults to all. This can be an array of subscriptions.\"\n />\n </div>\n )}\n </div>\n )}\n {props.value.options.type === 'udp' && (\n <PortInput value={props.value.options} onChange={props.onChange} />\n )}\n {serialParams(props)}\n {!props.value.options.useDiscovery && (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"options.type\">'self' handling</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={props.value.options.selfHandling || 'noSelf'}\n name=\"options.selfHandling\"\n onChange={(event) => props.onChange(event)}\n >\n <option value=\"useRemoteSelf\">\n Map remote 'self' to local 'self'\n </option>\n <option value=\"manualSelf\">Manual mapping</option>\n <option value=\"noSelf\">No 'self' mapping</option>\n </Input>\n </Col>\n </FormGroup>\n )}\n {!props.value.options.useDiscovery &&\n props.value.options.selfHandling === 'manualSelf' && (\n <RemoteSelfInput\n value={props.value.options}\n onChange={props.onChange}\n />\n )}\n </div>\n )\n}\n\nconst gpios = [\n 4, 5, 6, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,\n].map((gpio) => `0${gpio}`.slice(-2))\nconst Seatalk = (props) => (\n <span>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"gpio\">GPIO Pin</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n name=\"options.gpio\"\n id=\"gpio\"\n onChange={props.onChange}\n value={props.value.options.gpio || gpios[0]}\n >\n {gpios.map((gpio) => (\n <option key={gpio}>{`GPIO${gpio}`}</option>\n ))}\n </Input>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"gpioInvert\">Invert signal</Label>\n </Col>\n <Col xs=\"12\" md=\"10\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"gpioInvert\"\n name=\"options.gpioInvert\"\n className=\"switch-input\"\n onChange={props.onChange}\n checked={props.value.options.gpioInvert}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n </span>\n)\n\nconst FileStream = (props) => {\n return (\n <div>\n <DataTypeInput\n hasAnalyzer={props.hasAnalyzer}\n value={props.value}\n onChange={props.onChange}\n />\n <TextInput\n title=\"File Name\"\n name=\"options.filename\"\n value={props.value.options.filename}\n onChange={props.onChange}\n />\n </div>\n )\n}\n\nconst serialParams = (props) =>\n props.value.options.type === 'serial' && (\n <div>\n <DeviceInput value={props.value.options} onChange={props.onChange} />\n <BaudRateIntput value={props.value.options} onChange={props.onChange} />\n <StdOutInput value={props.value.options} onChange={props.onChange} />\n </div>\n )\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Alert,\n Badge,\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n Collapse,\n Input,\n Table,\n} from 'reactstrap'\nimport Creatable from 'react-select/creatable'\nimport remove from 'lodash.remove'\n\nexport const SOURCEPRIOS_PRIO_CHANGED = 'SOURCEPRIOS_PPRIO_CHANGED'\nexport const SOURCEPRIOS_PRIO_DELETED = 'SOURCEPRIOS_PRIO_DELETED'\nexport const SOURCEPRIOS_PRIO_MOVED = 'SOURCEPRIOS_PRIO_MOVED'\n\nexport const SOURCEPRIOS_PATH_CHANGED = 'SOURCEPRIOS_PATH_CHANGED'\nexport const SOURCEPRIOS_PATH_DELETED = 'SOURCEPRIOS_PATH_DELETED'\n\nexport const SOURCEPRIOS_SAVING = 'SOURCEPRIOS_SAVING'\nexport const SOURCEPRIOS_SAVED = 'SOURCEPRIOS_SAVED'\nexport const SOURCEPRIOS_SAVE_FAILED = 'SOURCEPRIOS_SAVE_FAILED'\nexport const SOURCEPRIOS_SAVE_FAILED_OVER = 'SOURCEPRIOS_SAVE_FAILED_OVER'\n\nfunction checkTimeouts(sourcePriorities) {\n return sourcePriorities.reduce((acc, prio, i) => {\n const { timeout } = prio\n if (!acc) {\n return acc\n }\n\n if (i === 0) {\n return true\n }\n\n const thisOne = Number(timeout)\n if (Number.isNaN(thisOne) || thisOne <= 0) {\n return false\n }\n if (i === 1) {\n return true\n }\n return thisOne > Number(sourcePriorities[i - 1].timeout)\n }, true)\n}\n\nexport const reduceSourcePriorities = (state, action) => {\n const sourcePriorities = JSON.parse(JSON.stringify(state.sourcePriorities))\n let saveState = { ...state.saveState }\n const { path, index, pathIndex, sourceRef, timeout, change } =\n action.data || {}\n const prios =\n pathIndex !== undefined ? sourcePriorities[pathIndex].priorities : undefined\n\n switch (action.type) {\n case SOURCEPRIOS_PATH_CHANGED:\n if (index === sourcePriorities.length) {\n sourcePriorities.push({ path: '', priorities: [] })\n }\n sourcePriorities[index].path = path\n saveState.dirty = true\n break\n\n case SOURCEPRIOS_PATH_DELETED:\n remove(sourcePriorities, (_, i) => i === index)\n saveState.dirty = true\n break\n\n case SOURCEPRIOS_PRIO_CHANGED:\n if (pathIndex === sourcePriorities.length) {\n sourcePriorities.push({ path: '', priorities: [] })\n }\n if (index === prios.length) {\n prios.push({ sourceRef: '', timeout: '' })\n }\n prios[index] = { sourceRef, timeout }\n saveState.dirty = true\n saveState.timeoutsOk = checkTimeouts(prios)\n break\n\n case SOURCEPRIOS_PRIO_DELETED:\n remove(prios, (_, i) => i === index)\n saveState.dirty = true\n break\n\n case SOURCEPRIOS_PRIO_MOVED:\n const tmp = prios[index]\n prios[index] = prios[index + change]\n prios[index + change] = tmp\n saveState.dirty = true\n saveState.timeoutsOk = checkTimeouts(prios)\n break\n\n case SOURCEPRIOS_SAVING:\n saveState = {\n ...saveState,\n isSaving: true,\n saveFailed: false,\n }\n break\n\n case SOURCEPRIOS_SAVED:\n saveState = {\n ...saveState,\n dirty: false,\n isSaving: false,\n saveFailed: false,\n }\n break\n\n case SOURCEPRIOS_SAVE_FAILED:\n saveState = {\n ...saveState,\n isSaving: false,\n saveFailed: true,\n }\n break\n\n case SOURCEPRIOS_SAVE_FAILED_OVER:\n saveState = {\n ...saveState,\n saveFailed: false,\n }\n break\n\n default:\n return state\n }\n // common return statement\n return { sourcePriorities, saveState }\n}\n\nfunction fetchSourceRefs(path, cb) {\n fetch(`/signalk/v1/api/vessels/self/${path.replace(/\\./g, '/')}`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((pathResponse) => {\n let sourceRefs = [pathResponse.$source]\n if (pathResponse.values) {\n sourceRefs = sourceRefs.concat(Object.keys(pathResponse.values))\n }\n return _.uniq(sourceRefs)\n })\n .then(cb)\n}\n\nclass PrefsEditor extends Component {\n constructor(props) {\n super(props)\n this.state = { isOpen: false, sourceRefs: [] }\n fetchSourceRefs(this.props.path, (sourceRefs) => {\n this.setState({ sourceRefs })\n })\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.path !== prevProps.path) {\n fetchSourceRefs(this.props.path, (sourceRefs) => {\n this.setState({ sourceRefs })\n })\n }\n }\n\n render() {\n const toggleEditor = () =>\n this.setState((state) => ({ isOpen: !state.isOpen }))\n return (\n <div>\n {!this.state.isOpen && <div onClick={toggleEditor}>...</div>}\n <Collapse isOpen={this.state.isOpen}>\n <Table>\n <thead onClick={toggleEditor}>\n <tr>\n <td style={{ width: '30px' }}>#</td>\n <td>Source Reference (see DataBrowser for details)</td>\n <td style={{ width: '120px' }}>Timeout (ms)</td>\n <td style={{ Width: '80px' }}>Order</td>\n <td></td>\n </tr>\n </thead>\n <tbody>\n {[...this.props.priorities, { sourceRef: '', timeout: '' }].map(\n ({ sourceRef, timeout }, index) => {\n const options = this.state.sourceRefs.map((sourceRef) => ({\n label: sourceRef,\n value: sourceRef,\n }))\n return (\n <tr key={index}>\n <td>{index + 1}.</td>\n <td>\n <Creatable\n menuPortalTarget={document.body}\n options={options}\n value={{ value: sourceRef, label: sourceRef }}\n onChange={(e) => {\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_CHANGED,\n data: {\n pathIndex: this.props.pathIndex,\n sourceRef: e.value,\n timeout,\n index,\n },\n })\n }}\n />\n </td>\n <td>\n {index > 0 && (\n <Input\n type=\"number\"\n name=\"timeout\"\n onChange={(e) =>\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_CHANGED,\n data: {\n pathIndex: this.props.pathIndex,\n sourceRef,\n timeout: e.target.value,\n index,\n },\n })\n }\n value={timeout}\n />\n )}\n </td>\n <td>\n {index > 0 && index < this.props.priorities.length && (\n <button\n onClick={() =>\n !this.props.isSaving &&\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_MOVED,\n data: {\n pathIndex: this.props.pathIndex,\n index,\n change: -1,\n },\n })\n }\n >\n <i className=\"fas fa-arrow-up\" />\n </button>\n )}\n {index < this.props.priorities.length - 1 && (\n <button\n onClick={() =>\n !this.props.isSaving &&\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_MOVED,\n data: {\n pathIndex: this.props.pathIndex,\n index,\n change: 1,\n },\n })\n }\n >\n <i className=\"fas fa-arrow-down\" />\n </button>\n )}\n </td>\n <td>\n {index < this.props.priorities.length && (\n <i\n className=\"fas fa-trash\"\n onClick={() =>\n !this.props.isSaving &&\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_DELETED,\n data: {\n pathIndex: this.props.pathIndex,\n index,\n },\n })\n }\n />\n )}\n </td>\n </tr>\n )\n }\n )}\n </tbody>\n </Table>\n </Collapse>\n </div>\n )\n }\n}\n\nconst sourcePrioritySave = (sourcePriorities) => (dispatch) => {\n dispatch({\n type: SOURCEPRIOS_SAVING,\n })\n fetch(`${window.serverRoutesPrefix}/sourcePriorities`, {\n method: 'PUT',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(\n sourcePriorities.reduce((acc, pathPriority) => {\n acc[pathPriority.path] = pathPriority.priorities\n return acc\n }, {})\n ),\n })\n .then((response) => {\n if (response.status === 200) {\n dispatch({\n type: SOURCEPRIOS_SAVED,\n })\n } else {\n throw new Error()\n }\n })\n .catch((err) => {\n dispatch({\n type: SOURCEPRIOS_SAVE_FAILED,\n })\n setTimeout(\n () => dispatch({ type: SOURCEPRIOS_SAVE_FAILED_OVER }),\n 5 * 1000\n )\n })\n}\n\nfunction fetchAvailablePaths(cb) {\n fetch(`${window.serverRoutesPrefix}/availablePaths`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then(cb)\n}\n\nclass SourcePriorities extends Component {\n constructor(props) {\n super(props)\n this.state = {\n availablePaths: [],\n }\n fetchAvailablePaths((pathsArray) => {\n this.setState({\n availablePaths: pathsArray.map((path) => ({\n value: path,\n label: path,\n })),\n })\n })\n }\n\n render() {\n const sourcePriorities = [].concat(this.props.sourcePriorities)\n sourcePriorities.push({ path: '', priorities: [] })\n return (\n <Card>\n <CardHeader>Source Priorities Settings</CardHeader>\n <CardBody>\n <Alert>\n <p>\n Use Source Priorities to filter incoming data so that data from\n lower priority sources is discarded when there is fresh data from\n some higher priority source.\n </p>\n <p>\n Incoming data is not handled if the{' '}\n <b>\n latest value for a path is from a higher priority source and it\n is not older than the timeout\n </b>{' '}\n specified for the source of the incoming data. Timeout for data\n from unlisted sources is 10 seconds.\n </p>\n <p>\n You can debug the settings by saving them and activating debug key{' '}\n <b>signalk-server:sourcepriorities</b> in{' '}\n <a href=\"./#/serverConfiguration/log\">Server Log</a>\n </p>\n </Alert>\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th style={{ width: '40%' }}>Path</th>\n <th>Priorities</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {sourcePriorities.map(({ path, priorities }, index) => {\n return (\n <tr key={index}>\n <td>\n <Creatable\n menuPortalTarget={document.body}\n options={this.state.availablePaths}\n value={{ value: path, label: path }}\n onChange={(e) => {\n this.props.dispatch({\n type: SOURCEPRIOS_PATH_CHANGED,\n data: { path: e.value, index },\n })\n }}\n />\n </td>\n <td>\n <PrefsEditor\n key={path}\n path={path}\n priorities={priorities}\n dispatch={this.props.dispatch}\n isSaving={this.props.saveState.isSaving}\n pathIndex={index}\n />\n </td>\n <td style={{ border: 'none' }}>\n {index < this.props.sourcePriorities.length && (\n <i\n className=\"fas fa-trash\"\n onClick={() =>\n this.props.dispatch({\n type: SOURCEPRIOS_PATH_DELETED,\n data: {\n index,\n },\n })\n }\n />\n )}\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n <CardFooter>\n <Button\n size=\"sm\"\n color=\"primary\"\n disabled={\n !this.props.saveState.dirty ||\n this.props.saveState.isSaving ||\n !this.props.saveState.timeoutsOk\n }\n onClick={(e) => {\n e.preventDefault()\n this.props.dispatch(\n sourcePrioritySave(this.props.sourcePriorities)\n )\n }}\n >\n <i className=\"fa fa-save\" /> Save\n </Button>\n {this.props.saveState.saveFailed &&\n 'Saving priorities settings failed!'}\n {!this.props.saveState.timeoutsOk && (\n <span style={{ paddingLeft: '10px' }}>\n <Badge color=\"danger\">Error</Badge>\n {\n 'The timeout values need to be numbers in ascending order, please fix.'\n }\n </span>\n )}\n </CardFooter>\n </Card>\n )\n }\n}\n\nconst mapStateToProps = ({ sourcePrioritiesData }) => ({\n sourcePriorities: sourcePrioritiesData.sourcePriorities,\n saveState: sourcePrioritiesData.saveState,\n})\n\nexport default connect(mapStateToProps)(SourcePriorities)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport classnames from 'classnames'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Nav,\n NavItem,\n NavLink,\n TabContent,\n TabPane,\n Row,\n} from 'reactstrap'\n\nimport BasicProvider from './BasicProvider'\nimport SourcePriorities from './SourcePriorities'\nimport set from 'lodash.set'\n\nfunction fetchProviders() {\n fetch(`${window.serverRoutesPrefix}/providers`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n let selectedProvider = undefined\n let selectedIndex = undefined\n if (this.state.selectedProviderId) {\n selectedProvider = data.find(\n (provider) => provider.id === this.state.selectedProviderId\n )\n selectedIndex = data.findIndex(\n (provider) => provider.id === this.state.selectedProviderId\n )\n }\n if (selectedProvider) {\n selectedProvider.originalId = selectedProvider.id\n }\n this.setState({\n providers: data,\n selectedProvider: selectedProvider\n ? JSON.parse(JSON.stringify(selectedProvider))\n : undefined,\n selectedIndex: selectedIndex,\n })\n })\n}\n\nfunction runDiscovery() {\n fetch(`${window.serverRoutesPrefix}/runDiscovery`, {\n method: 'PUT',\n credentials: 'include',\n })\n}\n\nfunction onRowSelect(row, isSelected, e) {\n // if column index is 2, will not trigger selection\n if (e.target.cellIndex === 2) return false\n}\n\nclass ProvidersConfiguration extends Component {\n constructor(props) {\n super(props)\n this.state = {\n activeTab: '1',\n providers: [],\n selectedProviderId: this.props.match.params.providerId,\n }\n\n this.fetchProviders = fetchProviders.bind(this)\n this.runDiscovery = runDiscovery.bind(this)\n this.handleProviderChange = this.handleProviderChange.bind(this)\n this.handleProviderPropChange = this.handleProviderChange.bind(this)\n this.handleAddProvider = this.handleAddProvider.bind(this)\n this.handleCancel = this.handleCancel.bind(this)\n this.toggle = this.toggle.bind(this)\n this.handleApply = this.handleApply.bind(this)\n this.handleCancel = this.handleCancel.bind(this)\n this.handleDelete = this.handleDelete.bind(this)\n }\n\n componentDidMount() {\n this.fetchProviders()\n this.runDiscovery()\n }\n\n handleProviderChange(event, type) {\n var value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n if (type === 'number') {\n value = Number(value)\n }\n set(this.state.selectedProvider, event.target.name, value)\n this.setState({\n selectedProvider: this.state.selectedProvider,\n })\n }\n\n handleProviderPropChange(event) {\n this.setState({\n selectedProvider: this.state.selectedProvider,\n })\n }\n\n handleAddProvider(event) {\n var newProvider = {\n type: 'NMEA2000',\n logging: false,\n isNew: true,\n id: '',\n enabled: true,\n options: {},\n editable: true,\n }\n this.setState(\n {\n selectedProvider: JSON.parse(JSON.stringify(newProvider)),\n selectedIndex: this.state.providers.length - 1,\n },\n () => {\n this.refs['selectedProvider'].scrollIntoView()\n }\n )\n }\n\n handleApply(event) {\n var isNew = this.state.selectedProvider.isNew\n var wasDiscovered = this.state.selectedProvider.wasDiscovered\n\n var provider = this.state.selectedProvider\n delete this.state.selectedProvider.json\n\n var id = this.state.selectedProvider.originalId\n\n fetch(`${window.serverRoutesPrefix}/providers/${id && !isNew ? id : ''}`, {\n method: isNew ? 'POST' : 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(this.state.selectedProvider),\n credentials: 'include',\n })\n .then((response) => {\n if (response.ok) {\n var provider = JSON.parse(JSON.stringify(this.state.selectedProvider))\n delete provider.isNew\n delete provider.wasDiscovered\n delete this.state.selectedProvider.isNew\n if (isNew) {\n this.state.providers.push(provider)\n } else {\n this.state.providers[this.state.selectedIndex] = provider\n }\n if (wasDiscovered) {\n this.props.discoveredProviders.splice(this.state.selectedIndex, 1)\n }\n this.setState(\n {\n providers: this.state.providers,\n //discoveredProviders: this.state.discoveredProviders,\n selectedProvider: null,\n selectedIndex: -1,\n },\n () => {\n this.props.history.push('/serverConfiguration/connections/-')\n }\n )\n }\n return response.text()\n })\n .then((text) => {\n alert(text)\n })\n }\n\n handleCancel(event) {\n this.setState({ selectedProvider: null })\n }\n\n handleDelete(event) {\n fetch(\n `${window.serverRoutesPrefix}/providers/${this.state.selectedProvider.id}`,\n {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.state.providers.splice(this.state.selectedIndex, 1)\n this.setState({\n providers: this.state.providers,\n selectedProvider: null,\n selectedIndex: -1,\n })\n alert(response)\n })\n }\n\n providerClicked(provider, index) {\n this.setState(\n {\n selectedProvider: {\n ...JSON.parse(JSON.stringify(provider)),\n originalId: provider.id,\n },\n selectedIndex: index,\n },\n () => {\n this.refs['selectedProvider'].scrollIntoView()\n }\n )\n }\n\n toggle(tab) {\n if (this.state.activeTab !== tab) {\n this.setState({\n activeTab: tab,\n })\n }\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.discoveredProviders &&\n this.props.discoveredProviders.length > 0 && (\n <Card>\n <CardHeader>Discovered Connections</CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Data Type</th>\n <th>Enabled</th>\n <th>Data Logging</th>\n </tr>\n </thead>\n <tbody>\n {(this.props.discoveredProviders || []).map(\n (provider, index) => {\n return (\n <tr\n onClick={this.providerClicked.bind(\n this,\n provider,\n index\n )}\n key={provider.id}\n >\n <td>{provider.id}</td>\n <td>\n <ProviderType provider={provider} />\n </td>\n <td>\n <ApplicableStatus\n applicable={provider.editable}\n toggle={provider.enabled}\n />\n </td>\n <td>\n <ApplicableStatus\n applicable={provider.editable}\n toggle={provider.logging}\n />\n </td>\n </tr>\n )\n }\n )}\n </tbody>\n </Table>\n </CardBody>\n </Card>\n )}\n <Card>\n <CardHeader>Connections</CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Data Type</th>\n <th>Enabled</th>\n <th>Data Logging</th>\n </tr>\n </thead>\n <tbody>\n {(this.state.providers || []).map((provider, index) => {\n return (\n <tr\n onClick={this.providerClicked.bind(this, provider, index)}\n key={provider.id}\n >\n <td>{provider.id}</td>\n <td>\n <ProviderType provider={provider} />\n </td>\n <td>\n <ApplicableStatus\n applicable={provider.editable}\n toggle={provider.enabled}\n />\n </td>\n <td>\n <ApplicableStatus\n applicable={provider.editable}\n toggle={provider.logging}\n />\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n <CardFooter>\n <Button size=\"sm\" color=\"primary\" onClick={this.handleAddProvider}>\n <i className=\"fa fa-plus-circle\" /> Add\n </Button>\n </CardFooter>\n </Card>\n\n {this.state.selectedProvider && (\n <div ref=\"selectedProvider\" style={{ scrollMarginTop: '54px' }}>\n <Card>\n <CardBody>\n {this.state.selectedProvider.editable ? (\n <BasicProvider\n value={this.state.selectedProvider}\n onChange={this.handleProviderChange}\n onPropChange={this.handleProviderPropChange}\n />\n ) : (\n <Input\n type=\"textarea\"\n name=\"json\"\n id=\"json\"\n rows=\"20\"\n value={this.state.selectedProvider.json}\n readOnly=\"true\"\n />\n )}\n </CardBody>\n <CardFooter>\n {this.state.selectedProvider.editable ? (\n <Row>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleApply}\n >\n <i className=\"fa fa-dot-circle-o\" /> Apply\n </Button>\n </Col>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"secondary\"\n onClick={this.handleCancel}\n >\n <i className=\"fa fa-ban\" /> Cancel\n </Button>\n </Col>\n <Col xs=\"4\" md=\"10\" className=\"text-right\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.handleDelete}\n >\n <i className=\"fa fa-ban\" /> Delete\n </Button>\n </Col>\n </Row>\n ) : (\n <Row>\n <Col xs=\"4\" md=\"12\" className=\"text-right\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.handleDelete}\n >\n <i className=\"fa fa-ban\" /> Delete\n </Button>\n </Col>\n </Row>\n )}\n </CardFooter>\n </Card>\n </div>\n )}\n\n <SourcePriorities />\n </div>\n )\n }\n}\n\nconst ApplicableStatus = (props) => (\n <div>{props.applicable ? (props.toggle ? 'Yes' : 'No') : 'N/A'}</div>\n)\n\nconst ProviderType = (props) => (\n <div>\n {props.provider.type}\n {props.provider.type === 'FileStream'\n ? `/${props.provider.options.dataType}`\n : ''}\n </div>\n)\nconst mapStateToProps = ({ discoveredProviders }) => ({ discoveredProviders })\n\nexport default connect(mapStateToProps)(ProvidersConfiguration)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardFooter,\n CardBody,\n Col,\n Row,\n ListGroup,\n ListGroupItem,\n} from 'reactstrap'\n\nfunction fetchLogfileList() {\n const okResponse = fetch(`${window.serverRoutesPrefix}/logfiles/`, {\n credentials: 'include',\n }).then((response) => {\n if (!response.ok) {\n this.setState({ authorized: false })\n return false\n }\n return response\n })\n\n okResponse &&\n okResponse\n .then((response) => response.json())\n .then((logfileslist) => {\n logfileslist.sort()\n this.setState({ logfileslist, hasData: true, authorized: true })\n })\n}\n\nclass Settings extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n authorized: true,\n }\n\n this.fetchLogfileList = fetchLogfileList.bind(this)\n }\n\n componentDidMount() {\n this.fetchLogfileList()\n }\n\n render() {\n if (!this.state.authorized) {\n return <div className=\"animated fadeIn\">Not Authorized</div>\n }\n\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Row>\n <Col sm=\"12\" xl=\"12\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n <strong>Data Logfiles</strong>\n </CardHeader>\n <CardBody>\n <ListGroup>\n {this.logfilesToRows(this.state.logfileslist)}\n </ListGroup>\n </CardBody>\n <CardFooter>\n <small className=\"text-muted\">\n Click button to download each logfile or\n </small>\n <a href={`${window.serverRoutesPrefix}/ziplogs`}>\n <Button className=\"m-2\">\n Get all logs in one ZIP file\n </Button>\n </a>\n </CardFooter>\n </Card>\n </Col>\n </Row>\n </div>\n )\n )\n }\n\n logfilesToRows(logfiles) {\n // skserver-raw_2017-03-04T14.log\n // 012345678901234567890123456789012\n const datesWithHours = logfiles.reduce((acc, logfile) => {\n const date = logfile.substr(13, 10)\n const hour = logfile.substr(24, 2)\n if (!acc[date]) {\n acc[date] = []\n }\n acc[date].push(hour)\n return acc\n }, {})\n\n return Object.keys(datesWithHours).map((date, i) => {\n return (\n <ListGroupItem key={i}>\n {date}\n {datesWithHours[date].map((hour, i) => (\n <span key={i}>\n <a\n href={`${window.serverRoutesPrefix}/logfiles/skserver-raw_${date}T${hour}.log`}\n >\n <Button className=\"m-2\">{hour}</Button>\n </a>\n </span>\n ))}\n </ListGroupItem>\n )\n })\n }\n}\n\nexport default connect()(Settings)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Badge,\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Progress,\n} from 'reactstrap'\n\nimport VesselConfiguration from './VesselConfiguration'\nimport LogFiles from './Logging'\n\nfunction fetchSettings() {\n fetch(`${window.serverRoutesPrefix}/settings`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ ...data, hasData: true })\n })\n}\n\nclass ServerSettings extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n }\n this.fetchSettings = fetchSettings.bind(this)\n this.handleChange = this.handleChange.bind(this)\n this.handleOptionChange = this.handleOptionChange.bind(this)\n this.handleInterfaceChange = this.handleInterfaceChange.bind(this)\n this.handleSaveSettings = this.handleSaveSettings.bind(this)\n }\n\n componentDidMount() {\n this.fetchSettings()\n }\n\n handleChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.setState({ [event.target.name]: value })\n }\n\n handleOptionChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.options[event.target.name] = value\n this.setState({ options: this.state.options })\n }\n\n handleInterfaceChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.interfaces[event.target.name] = value\n this.setState({ interfaces: this.state.interfaces })\n }\n\n handleSaveSettings() {\n fetch(`${window.serverRoutesPrefix}/settings`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(this.state),\n credentials: 'include',\n })\n .then((response) => response.text())\n .then((response) => {\n alert(response)\n })\n }\n\n render() {\n const fieldColWidthMd = 10\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n <strong>Server Settings</strong>\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n {!this.state.runFromSystemd && (\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"port\">HTTP Port</Label>\n </Col>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n size=\"5\"\n style={{ width: 'auto' }}\n type=\"text\"\n name=\"port\"\n onChange={this.handleChange}\n value={this.state.port}\n />\n <FormText color=\"muted\">\n Saving a new value here will not have effect if\n overridden by environment variable PORT\n </FormText>\n </Col>\n </FormGroup>\n )}\n {this.state.runFromSystemd && (\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <FormText>\n The server was started by systemd, run\n signalk-server-setup to change ports and ssl\n configuration.\n </FormText>\n </Col>\n </FormGroup>\n )}\n {this.state.options.ssl && !this.state.runFromSystemd && (\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"sslport\">SSL Port</Label>\n </Col>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n size=\"5\"\n style={{ width: 'auto' }}\n type=\"text\"\n name=\"sslport\"\n onChange={this.handleChange}\n value={this.state.sslport}\n />\n <FormText color=\"muted\">\n Saving a new value here will not have effect if\n overridden by environment variable SSLPORT\n </FormText>\n </Col>\n </FormGroup>\n )}\n <FormGroup row>\n <Col md=\"2\">\n <Label>Options</Label>\n </Col>\n <Col md={fieldColWidthMd}>\n <FormGroup check>\n {Object.keys(this.state.options).map((name) => {\n return (\n <div key={name}>\n <Label\n style={{ marginRight: '15px' }}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n id={name}\n name={name}\n className=\"switch-input\"\n onChange={this.handleOptionChange}\n checked={this.state.options[name]}\n />\n <span\n className=\"switch-label\"\n data-on=\"On\"\n data-off=\"Off\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <span style={{ lineHeight: '23px' }}>{name}</span>\n </div>\n )\n })}\n </FormGroup>\n </Col>\n </FormGroup>\n\n <FormGroup row>\n <Col md=\"2\">\n <Label>Interfaces</Label>\n </Col>\n <Col md={fieldColWidthMd}>\n <FormGroup check>\n {Object.keys(SettableInterfaces).map((name) => {\n return (\n <div key={name}>\n <Label\n style={{ marginRight: '15px' }}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n id={name}\n name={name}\n className=\"switch-input\"\n onChange={this.handleInterfaceChange}\n checked={this.state.interfaces[name]}\n />\n <span\n className=\"switch-label\"\n data-on=\"On\"\n data-off=\"Off\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <span style={{ lineHeight: '24px' }}>\n {SettableInterfaces[name]}\n </span>\n </div>\n )\n })}\n </FormGroup>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"pruneContextsMinutes\">\n Maximum age of inactive vessels' data\n </Label>\n </Col>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n type=\"text\"\n name=\"pruneContextsMinutes\"\n onChange={this.handleChange}\n value={this.state.pruneContextsMinutes}\n />\n <FormText color=\"muted\">\n Vessels that have not been updated after this many minutes\n will be removed\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"loggingDirectory\">\n Data Logging Directory\n </Label>\n </Col>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n type=\"text\"\n name=\"loggingDirectory\"\n onChange={this.handleChange}\n value={this.state.loggingDirectory}\n />\n <FormText color=\"muted\">\n Connections that have logging enabled create hourly log\n files in Multiplexed format in this directory\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label>Keep only most recent data log files</Label>\n </Col>\n <Col>\n <FormGroup check>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"keepMostRecentLogsOnly\"\n id=\"keepMostRecentLogsOnly\"\n className=\"switch-input\"\n onChange={this.handleChange}\n checked={this.state.keepMostRecentLogsOnly}\n />\n <span\n className=\"switch-label\"\n data-on=\"On\"\n data-off=\"Off\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </FormGroup>\n </Col>\n <Col>\n <Input\n type=\"text\"\n name=\"logCountToKeep\"\n onChange={this.handleChange}\n value={this.state.logCountToKeep}\n />\n <FormText color=\"muted\">\n How many hourly files to keep\n </FormText>\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleSaveSettings}\n >\n <i className=\"fa fa-dot-circle-o\" /> Save\n </Button>{' '}\n <Badge color=\"danger\" className=\"float-right\">\n Restart Required\n </Badge>\n </CardFooter>\n </Card>\n </div>\n )\n )\n }\n}\n\nconst SettableInterfaces = {\n applicationData: 'Application Data Storage',\n logfiles: 'Data log files access',\n 'nmea-tcp': 'NMEA 0183 over TCP (10110)',\n tcp: 'Signal K over TCP (8375)',\n}\n\nconst ReduxedSettings = connect()(ServerSettings)\n\nclass Settings extends Component {\n render() {\n return (\n <div>\n <VesselConfiguration />\n <ReduxedSettings />\n <LogFiles />\n </div>\n )\n }\n}\n\nexport default Settings\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Progress,\n} from 'reactstrap'\n\nimport { restart } from '../../actions'\n\nconst RESTORE_NONE = 0\nconst RESTORE_VALIDATING = 1\nconst RESTORE_CONFIRM = 2\nconst RESTORE_RUNNING = 3\n\nclass BackupRestore extends Component {\n constructor(props) {\n super(props)\n this.state = {\n restoreFile: null,\n restoreState: RESTORE_NONE,\n includePlugins: false,\n }\n this.fileChanged = this.fileChanged.bind(this)\n this.handleRestoreFileChange = this.handleRestoreFileChange.bind(this)\n this.includePluginsChange = this.includePluginsChange.bind(this)\n this.backup = this.backup.bind(this)\n this.validate = this.validate.bind(this)\n this.restore = this.restore.bind(this)\n this.restart = this.restart.bind(this)\n this.cancelRestore = this.cancelRestore.bind(this)\n }\n\n cancelRestore(event) {\n this.setState({ restoreState: RESTORE_NONE })\n }\n\n fileChanged(event) {\n this.setState({ ...this.state, restoreFile: event.target.files[0] })\n }\n\n backup() {\n const url = `${window.serverRoutesPrefix}/backup?includePlugins=${this.state.includePlugins}`\n //const url = `/backup`\n window.location = url\n }\n\n restore() {\n fetch(`${window.serverRoutesPrefix}/restore`, {\n credentials: 'include',\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(this.state.restoreContents),\n })\n .then((response) => {\n if (!response.ok) {\n return response.text()\n }\n })\n .then((res) => {\n if (typeof res === 'string') {\n alert(res)\n this.setState({ restoreState: RESTORE_NONE, restoreFile: null })\n } else {\n this.setState({ restoreState: RESTORE_RUNNING })\n }\n })\n .catch((error) => {\n alert(error.message)\n })\n }\n\n restart() {\n this.props.restart()\n this.setState({ restoreState: RESTORE_NONE })\n window.location = '/admin/#/dashboard'\n }\n\n validate() {\n if (!this.state.restoreFile) {\n alert('Please choose a file')\n return\n }\n\n const data = new FormData()\n data.append('file', this.state.restoreFile)\n\n this.setState({ restoreState: RESTORE_VALIDATING })\n fetch(`${window.serverRoutesPrefix}/validateBackup`, {\n credentials: 'include',\n method: 'POST',\n headers: {\n Accept: 'application/json',\n },\n body: data,\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return response.text()\n }\n })\n .then((res) => {\n if (typeof res === 'string') {\n alert(res)\n this.setState({ restoreState: RESTORE_NONE, restoreFile: null })\n } else {\n const restoreContents = {}\n res.forEach((filename) => {\n restoreContents[filename] = true\n })\n this.setState({ restoreState: RESTORE_CONFIRM, restoreContents })\n }\n })\n .catch((error) => {\n alert(error.message)\n })\n }\n\n handleRestoreFileChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.restoreContents[event.target.name] = value\n this.setState({ restoreContents: this.state.restoreContents })\n }\n\n includePluginsChange(event) {\n this.state.includePlugins = event.target.checked\n this.setState({ includePlugins: this.state.includePlugins })\n }\n\n render() {\n const fieldColWidthMd = 10\n return (\n <div>\n {this.state.restoreState === RESTORE_NONE &&\n !this.props.restoreStatus.state && (\n <Card>\n <CardHeader>Backup Settings</CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n <FormText color=\"muted\">\n This will backup your server and plugin settings.\n </FormText>\n <br />\n <FormGroup row>\n <Col xs=\"3\" md=\"2\">\n <Label>Include Plugins</Label>\n </Col>\n <Col xs=\"2\" md={fieldColWidthMd}>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"enabled\"\n className=\"switch-input\"\n onChange={(event) => this.includePluginsChange(event)}\n checked={this.state.includePlugins}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <FormText color=\"muted\">\n Selecting Yes will increase the size of the backup, but\n will allow for offline restore.\n </FormText>\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button size=\"sm\" color=\"primary\" onClick={this.backup}>\n <i className=\"fa fa-dot-circle-o\" /> Backup\n </Button>{' '}\n </CardFooter>\n </Card>\n )}\n <Card>\n <CardHeader>Restore Settings</CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n {this.state.restoreState === RESTORE_NONE &&\n !this.props.restoreStatus.state && (\n <div>\n <FormText color=\"muted\">\n Please select the backup file from your device to use in\n restoring the settings. Your existing settings will be\n overwritten.\n </FormText>\n <br />\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n type=\"file\"\n name=\"backupFile\"\n onChange={this.fileChanged}\n />\n </Col>\n </FormGroup>\n </div>\n )}\n {this.state.restoreState === RESTORE_CONFIRM && (\n <FormGroup check>\n <Col xs=\"12\" md={fieldColWidthMd}>\n {_.keys(this.state.restoreContents).map((name) => {\n return (\n <div key={name}>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id={name}\n name={name}\n className=\"switch-input\"\n onChange={this.handleRestoreFileChange}\n checked={this.state.restoreContents[name]}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>{' '}\n {name}\n </div>\n )\n })}\n </Col>\n </FormGroup>\n )}\n {this.props.restoreStatus &&\n this.props.restoreStatus.state &&\n this.props.restoreStatus.state !== 'Complete' && (\n <div>\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <FormText>\n {this.props.restoreStatus.state} :{' '}\n {this.props.restoreStatus.message}\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Progress\n animated\n color=\"success\"\n value={this.props.restoreStatus.percentComplete}\n />\n </Col>\n </FormGroup>\n </div>\n )}\n {this.props.restoreStatus.state &&\n this.props.restoreStatus.state === 'Complete' && (\n <div>\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <FormText>Please Restart</FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Button size=\"sm\" color=\"danger\" onClick={this.restart}>\n {this.props.restarting ? (\n <i className=\"fa fa-circle-o-notch fa-spin\" />\n ) : (\n <i className=\"fa fa-circle-o-notch\" />\n )}{' '}\n Restart\n </Button>\n </Col>\n </FormGroup>\n </div>\n )}\n </Form>\n </CardBody>\n <CardFooter>\n {this.state.restoreState === RESTORE_NONE &&\n !this.props.restoreStatus.state && (\n <div>\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.validate}\n disabled={this.state.restoreFile === null}\n >\n <i className=\"fa fa-dot-circle-o\" /> Restore\n </Button>{' '}\n </div>\n )}\n {this.state.restoreState === RESTORE_CONFIRM && (\n <div>\n <Button size=\"sm\" color=\"primary\" onClick={this.cancelRestore}>\n <i className=\"fa fa-dot-circle-o\" /> Cancel\n </Button>{' '}\n <Button size=\"sm\" color=\"danger\" onClick={this.restore}>\n <i className=\"fa fa-dot-circle-o\" /> Confirm\n </Button>\n </div>\n )}\n </CardFooter>\n </Card>\n </div>\n )\n }\n}\n\nexport default connect(\n ({ restoreStatus, restarting }) => ({ restoreStatus, restarting }),\n { restart }\n)(BackupRestore)\n","import React, { Component } from 'react'\nimport ReactHtmlParser from 'react-html-parser'\nimport { connect } from 'react-redux'\nimport {\n Card,\n CardBody,\n CardHeader,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n} from 'reactstrap'\nimport LogFiles from './Logging'\nimport Creatable from 'react-select/creatable'\n\nclass ServerLogs extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: true,\n webSocket: null,\n didSubScribe: false,\n pause: false,\n debugKeys: [],\n }\n\n this.handleDebug = this.handleDebug.bind(this)\n this.handlePause = this.handlePause.bind(this)\n this.fetchDebugKeys = this.fetchDebugKeys.bind(this)\n }\n\n subscribeToLogsIfNeeded() {\n if (\n !this.state.pause &&\n this.props.webSocket &&\n (this.props.webSocket != this.state.webSocket ||\n this.state.didSubScribe === false)\n ) {\n const sub = { context: 'vessels.self', subscribe: [{ path: 'log' }] }\n this.props.webSocket.send(JSON.stringify(sub))\n this.state.webSocket = this.props.webSocket\n this.state.didSubScribe = true\n }\n }\n\n unsubscribeToLogs() {\n if (this.props.webSocket) {\n const sub = { context: 'vessels.self', unsubscribe: [{ path: 'log' }] }\n this.props.webSocket.send(JSON.stringify(sub))\n this.state.didSubScribe = false\n }\n }\n\n fetchDebugKeys() {\n fetch(`${window.serverRoutesPrefix}/debugKeys`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((debugKeys) => {\n this.setState({ debugKeys: debugKeys.sort() })\n })\n }\n\n componentDidMount() {\n this.subscribeToLogsIfNeeded()\n this.fetchDebugKeys()\n }\n\n componentDidUpdate() {\n this.subscribeToLogsIfNeeded()\n }\n\n componentWillUnmount() {\n this.unsubscribeToLogs()\n }\n\n handleDebug(event) {\n this.doHandleDebug(event.target.value)\n }\n\n handleDebugCheckbox(value, enabled) {\n const keysToSend =\n this.props.log.debugEnabled.length > 0\n ? this.props.log.debugEnabled.split(',')\n : []\n if (enabled) {\n keysToSend.push(value)\n } else {\n _.remove(keysToSend, (v) => v === value)\n }\n this.doHandleDebug(keysToSend.toString())\n }\n\n doHandleDebug(value) {\n fetch(`${window.serverRoutesPrefix}/debug`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ value }),\n credentials: 'include',\n }).then((response) => response.text())\n }\n\n handleRememberDebug(event) {\n fetch(`${window.serverRoutesPrefix}/rememberDebug`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ value: event.target.checked }),\n credentials: 'include',\n }).then((response) => response.text())\n }\n\n handlePause(event) {\n this.state.pause = event.target.checked\n this.setState(this.state)\n if (this.state.pause) {\n this.unsubscribeToLogs()\n } else {\n this.subscribeToLogsIfNeeded()\n }\n }\n\n render() {\n const activeDebugKeys = this.props.log.debugEnabled.split(',')\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n <strong>Server Log</strong>\n </CardHeader>\n\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col>\n <Creatable\n isMulti\n options={this.state.debugKeys.map((key) => ({\n label: key,\n value: key,\n }))}\n value={\n this.props.log.debugEnabled\n ? this.props.log.debugEnabled\n .split(',')\n .map((value) => ({ label: value, value }))\n : null\n }\n onChange={(v) => {\n const value =\n v !== null\n ? v.map(({ value }) => value).join(',')\n : ''\n this.doHandleDebug(value)\n }}\n />\n <FormText color=\"muted\" style={{ marginBottom: '15px' }}>\n Select the appropriate debug keys to activate debug\n logging for various components on the server.\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"6\" md=\"6\">\n Persist debug settings over server restarts{' '}\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"Enabled\"\n name=\"debug\"\n className=\"switch-input\"\n onChange={this.handleRememberDebug}\n checked={this.props.log.rememberDebug}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n <Col xs=\"6\" md=\"6\">\n Pause the log window{' '}\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"Pause\"\n name=\"pause\"\n className=\"switch-input\"\n onChange={this.handlePause}\n checked={this.state.pause}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n <LogList value={this.props.log} />\n </Form>\n </CardBody>\n </Card>\n <LogFiles />\n </div>\n )\n )\n }\n}\n\nclass LogList extends Component {\n componentDidMount() {\n this.end.scrollIntoView()\n }\n\n render() {\n return (\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n fontFamily: 'monospace',\n }}\n >\n {this.props.value.entries &&\n this.props.value.entries.map((logEntry, index) => {\n return <PureLogRow key={logEntry.i} log={logEntry.d} />\n })}\n <div\n ref={(el) => {\n this.end = el\n }}\n >\n \n </div>\n </div>\n )\n }\n}\n\nclass PureLogRow extends React.PureComponent {\n render() {\n return (\n <span>\n {ReactHtmlParser(this.props.log)}\n <br />\n </span>\n )\n }\n}\n\nexport default connect(({ log, webSocket }) => ({ log, webSocket }))(ServerLogs)\n","import React, { Component } from 'react'\nimport { Alert, Button, Card, CardHeader, CardBody } from 'reactstrap'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\nclass ServerUpdate extends Component {\n constructor(props) {\n super(props)\n this.state = {\n chanelog: null,\n }\n\n this.handleUpdate = this.handleUpdate.bind(this)\n this.fetchChangelog = this.fetchChangelog.bind(this)\n this.fetchChangelog()\n }\n\n fetchChangelog(version) {\n fetch(\n `https://raw.githubusercontent.com/SignalK/signalk-server-node/master/CHANGELOG.md`\n )\n .then((response) => response.text())\n .then((data) => {\n this.setState({ changelog: data })\n })\n }\n\n handleUpdate() {\n console.log('handleUpdate')\n if (confirm(`Are you sure you want to update the server?'`)) {\n this.props.history.push('/appstore/updates')\n fetch(\n `${window.serverRoutesPrefix}/appstore/install/signalk-server/${this.props.appStore.serverUpdate}`,\n {\n method: 'POST',\n credentials: 'include',\n }\n ).then(() => {\n this.history.pushState(null, 'appstore/updates')\n })\n }\n }\n\n render() {\n if (!this.props.appStore.storeAvailable) {\n return (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>Waiting for App store data to load...</CardHeader>\n </Card>\n </div>\n )\n }\n let isInstalling = false\n let isInstalled = false\n let info = this.props.appStore.installing.find(\n (p) => p.name == 'signalk-server'\n )\n if (info) {\n if (info.isWaiting || info.isInstalling) {\n isInstalling = true\n } else {\n isInstalled = true\n }\n }\n return (\n <div className=\"animated fadeIn\">\n {!this.props.appStore.canUpdateServer && (\n <Card className=\"border-warning\">\n <CardHeader>Server Update</CardHeader>\n <CardBody>\n This installation is not updatable from the admin user interface.\n </CardBody>\n </Card>\n )}\n {this.props.appStore.isInDocker && (\n <Card className=\"border-warning\">\n <CardHeader>Running as a Docker container</CardHeader>\n <CardBody>\n The server is running as a Docker container. You need to pull a\n new server version from{' '}\n <a href=\"https://cr.signalk.io/signalk/signalk-server\">\n Container registry\n </a>{' '}\n to update.\n </CardBody>\n </Card>\n )}\n {this.props.appStore.canUpdateServer &&\n this.props.appStore.serverUpdate &&\n !isInstalling &&\n !isInstalled && (\n <Card>\n <CardHeader>\n Server version {this.props.appStore.serverUpdate} is available\n </CardHeader>\n <CardBody>\n <a href=\"https://github.com/SignalK/signalk-server/releases/\">\n Release Notes for latest releases.\n </a>\n <br />\n <br />\n <Button\n className=\"btn btn-danger\"\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleUpdate}\n >\n Update\n </Button>\n </CardBody>\n </Card>\n )}\n {isInstalling && (\n <Card>\n <CardHeader>Server Update</CardHeader>\n <CardBody>The update is being installed</CardBody>\n </Card>\n )}\n {isInstalled && (\n <Card>\n <CardHeader>Server Update</CardHeader>\n <CardBody>\n The update has been installed, please restart the Signal K server.\n </CardBody>\n </Card>\n )}\n {this.props.appStore.canUpdateServer &&\n !this.props.appStore.serverUpdate && (\n <Card>\n <CardHeader>Server Update</CardHeader>\n <CardBody>Your server is up to date.</CardBody>\n </Card>\n )}\n\n <Card>\n <CardHeader>Sponsoring</CardHeader>\n <CardBody>\n <p>\n If you find Signal K valuable to you consider sponsoring our work\n on developing it further.\n </p>\n <p>\n Your support allows us to do things like\n <ul>\n <li>travel to meet in person and push things forward</li>\n <li>purchase equipment to develop on</li>\n <li>upgrade our cloud resources beyond the free tiers</li>\n </ul>\n </p>\n <p>\n See{' '}\n <a href=\"https://opencollective.com/signalk\">\n Signal K in Open Collective\n </a>{' '}\n for details.\n </p>\n </CardBody>\n </Card>\n </div>\n )\n }\n}\n\nexport default connect(({ appStore }) => ({ appStore }))(\n withRouter(ServerUpdate)\n)\n","import React, { Component } from 'react'\nimport { Switch, Route, Redirect, withRouter, History } from 'react-router-dom'\nimport { Container } from 'reactstrap'\nimport { connect } from 'react-redux'\n\nimport Header from '../../components/Header/Header'\nimport Sidebar from '../../components/Sidebar/Sidebar'\nimport Aside from '../../components/Aside/Aside'\nimport Footer from '../../components/Footer/Footer'\n\nimport Dashboard from '../../views/Dashboard/Dashboard'\nimport Embedded from '../../views/Webapps/Embedded'\nimport Webapps from '../../views/Webapps/Webapps'\nimport DataBrowser from '../../views/DataBrowser'\nimport Playground from '../../views/Playground'\nimport Apps from '../../views/appstore/Apps/Apps'\nimport Configuration from '../../views/Configuration/Configuration'\nimport Login from '../../views/security/Login'\nimport SecuritySettings from '../../views/security/Settings'\nimport Users from '../../views/security/Users'\nimport Devices from '../../views/security/Devices'\nimport Register from '../../views/security/Register'\nimport AccessRequests from '../../views/security/AccessRequests'\nimport VesselConfiguration from '../../views/ServerConfig/VesselConfiguration'\nimport ProvidersConfiguration from '../../views/ServerConfig/ProvidersConfiguration'\nimport Settings from '../../views/ServerConfig/Settings'\nimport BackupRestore from '../../views/ServerConfig/BackupRestore'\nimport Logging from '../../views/ServerConfig/Logging'\nimport ServerLog from '../../views/ServerConfig/ServerLog'\nimport ServerUpdate from '../../views/ServerConfig/ServerUpdate'\n\nimport {\n fetchLoginStatus,\n fetchAllData,\n openServerEventsConnection,\n} from '../../actions'\n\nclass Full extends Component {\n componentDidMount() {\n const { dispatch } = this.props\n fetchAllData(dispatch)\n openServerEventsConnection(dispatch)\n }\n\n render() {\n const suppressPadding =\n this.props.location.pathname.indexOf('/e/') === 0\n ? { padding: '0px' }\n : {}\n return (\n <div className=\"app\">\n <Header />\n <div className=\"app-body\">\n <Sidebar {...this.props} />\n <main className=\"main\">\n <Container fluid style={suppressPadding}>\n <Switch>\n <Route\n path=\"/dashboard\"\n name=\"Dashboard\"\n component={loginOrOriginal(Dashboard, true)}\n />\n <Route\n path=\"/webapps\"\n name=\"Webapps\"\n component={loginOrOriginal(Webapps, true)}\n />\n <Route\n path=\"/e/:moduleId\"\n name=\"Embedded Webapps\"\n component={loginOrOriginal(Embedded, true)}\n />\n <Route\n path=\"/databrowser\"\n name=\"DataBrowser\"\n component={loginOrOriginal(DataBrowser, true)}\n />\n <Route\n path=\"/serverConfiguration/datafiddler\"\n name=\"DataFiddler\"\n component={loginOrOriginal(Playground, true)}\n />\n <Route\n path=\"/appstore/:view\"\n component={loginOrOriginal(Apps)}\n />\n <Route\n path=\"/serverConfiguration/plugins/:pluginid\"\n component={loginOrOriginal(Configuration)}\n />\n <Route\n path=\"/serverConfiguration/settings\"\n component={loginOrOriginal(Settings)}\n />\n <Route\n path=\"/serverConfiguration/backuprestore\"\n component={loginOrOriginal(BackupRestore)}\n />\n <Route\n path=\"/serverConfiguration/connections/:providerId\"\n component={loginOrOriginal(ProvidersConfiguration)}\n />\n <Route\n path=\"/serverConfiguration/log\"\n component={loginOrOriginal(ServerLog)}\n />\n <Route\n path=\"/serverConfiguration/update\"\n component={loginOrOriginal(ServerUpdate)}\n />\n <Route\n path=\"/security/settings\"\n component={loginOrOriginal(SecuritySettings)}\n />\n <Route\n path=\"/security/users\"\n component={loginOrOriginal(Users)}\n />\n <Route\n path=\"/security/devices\"\n component={loginOrOriginal(Devices)}\n />\n <Route\n path=\"/security/access/requests\"\n component={loginOrOriginal(AccessRequests)}\n />\n <Route path=\"/login\" component={Login} />\n <Route path=\"/register\" component={Register} />\n <Redirect from=\"/\" to=\"/dashboard\" />\n </Switch>\n </Container>\n </main>\n <Aside />\n </div>\n <Footer />\n </div>\n )\n }\n}\n\nexport default connect()(Full)\n\nconst loginOrOriginal = (BaseComponent, componentSupportsReadOnly) => {\n class Restricted extends Component {\n constructor(props) {\n super(props)\n this.state = { hasError: false }\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true }\n }\n\n render() {\n if (loginRequired(this.props.loginStatus, componentSupportsReadOnly)) {\n return <Login />\n } else if (this.state.hasError) {\n return <span>Something went wrong.</span>\n } else {\n return <BaseComponent {...this.props} />\n }\n }\n }\n return connect(({ loginStatus }) => ({ loginStatus }))(withRouter(Restricted))\n}\n\nfunction loginRequired(loginStatus, componentSupportsReadOnly) {\n // component works with read only access and\n // server loginStatus allows read only access\n if (componentSupportsReadOnly && loginStatus.readOnlyAccess) {\n return false\n }\n\n // require login when server requires authentication AND\n // user is not logged\n return (\n loginStatus.authenticationRequired && loginStatus.status === 'notLoggedIn'\n )\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { HashRouter, Route, Switch } from 'react-router-dom'\nimport { Provider } from 'react-redux'\nimport { createStore, applyMiddleware } from 'redux'\nimport thunk from 'redux-thunk'\n\n// Styles\n// Import Font Awesome Icons Set\nimport 'font-awesome/css/font-awesome.min.css'\nimport '@fortawesome/fontawesome-free/css/all.min.css'\n// Import Simple Line Icons Set\nimport 'simple-line-icons/css/simple-line-icons.css'\n// Import Main styles for this application\nimport '../scss/style.scss'\n// Temp fix for reactstrap\nimport '../scss/core/_dropdown-menu-right.scss'\n\n// Containers\nimport Full from './containers/Full/Full'\n\nimport { openServerEventsConnection } from './actions'\n\nimport { reduceSourcePriorities } from './views/ServerConfig/SourcePriorities'\n\nimport escape from 'escape-html'\nimport Convert from 'ansi-to-html'\n\nconst convert = new Convert()\nconst entries = []\n\nlet logEntryCount = 0\n\nfor (let i = 0; i < 100; i++) {\n entries[i] = {\n i: logEntryCount++,\n d: '',\n }\n}\n\nconst state = {\n plugins: [],\n webapps: [],\n addons: [],\n appStore: {\n updates: [],\n installed: [],\n available: [],\n installing: [],\n },\n loginStatus: {},\n serverSpecification: {},\n websocketStatus: 'initial',\n webSocket: null,\n restarting: false,\n accessRequests: [],\n discoveredProviders: [],\n log: {\n entries,\n debugEnabled: '',\n rememberDebug: false,\n },\n restoreStatus: {},\n vesselInfo: {},\n sourcePrioritiesData: {\n sourcePriorities: [],\n saveState: {\n dirty: false,\n timeoutsOk: true,\n },\n },\n}\n\nlet store = createStore(\n (state, action) => {\n let newState = {}\n if (action.type === 'RECEIVE_PLUGIN_LIST') {\n return {\n ...state,\n plugins: action.data,\n }\n }\n if (action.type === 'RECEIVE_WEBAPPS_LIST') {\n return {\n ...state,\n webapps: action.data,\n }\n }\n if (action.type === 'RECEIVE_ADDONS_LIST') {\n return {\n ...state,\n addons: action.data,\n }\n }\n if (\n action.type === 'RECEIVE_APPSTORE_LIST' ||\n action.type === 'APP_STORE_CHANGED'\n ) {\n var apps = action.data\n\n apps.installing.sort(nameCollator)\n apps.available.sort(nameCollator)\n apps.installed.sort(nameCollator)\n apps.updates.sort(nameCollator)\n\n return {\n ...state,\n appStore: apps,\n }\n }\n if (action.type === 'SERVERSTATISTICS') {\n return {\n ...state,\n serverStatistics: action.data,\n }\n }\n if (action.type === 'PROVIDERSTATUS') {\n action.data.sort((l, r) => {\n return l.id > r.id\n })\n return {\n ...state,\n providerStatus: action.data,\n }\n }\n if (action.type === 'RECEIVE_LOGIN_STATUS') {\n return {\n ...state,\n loginStatus: action.data,\n }\n }\n if (action.type === 'RECEIVE_SERVER_SPEC') {\n return {\n ...state,\n serverSpecification: action.data,\n }\n }\n if (action.type === 'WEBSOCKET_CONNECTED') {\n return {\n ...state,\n websocketStatus: 'connected',\n }\n }\n if (action.type === 'WEBSOCKET_OPEN') {\n if (state.webSocketTimer) {\n clearInterval(state.webSocketTimer)\n delete state.webSocketTimer\n }\n if (state.restarting) {\n state.restarting = false\n }\n return {\n ...state,\n websocketStatus: 'open',\n webSocket: action.data,\n }\n }\n if (action.type === 'VESSEL_INFO') {\n if (action.data.name) {\n document.title = action.data.name\n }\n return {\n ...state,\n vesselInfo: action.data,\n }\n }\n if (action.type === 'WEBSOCKET_ERROR') {\n return {\n ...state,\n websocketStatus: 'error',\n }\n }\n if (action.type === 'WEBSOCKET_CLOSE') {\n if (!state.webSocketTimer) {\n state.webSocketTimer = setInterval(() => {\n console.log(`retry...`)\n openServerEventsConnection(store.dispatch, true)\n }, 5 * 1000)\n }\n return {\n ...state,\n websocketStatus: 'closed',\n webSocket: null,\n }\n }\n if (action.type === 'LOGIN_SUCCESS') {\n if (state.webSocket) {\n // since we're closing manually, don't let the reconnect timer start\n state.webSocket.onclose = undefined\n state.webSocket.close()\n }\n openServerEventsConnection(store.dispatch)\n return state\n }\n if (action.type === 'SERVER_RESTART') {\n return {\n ...state,\n restarting: true,\n }\n }\n if (action.data === 'SERVER_UP') {\n return {\n ...state,\n restarting: false,\n }\n }\n if (action.type === 'LOGOUT_REQUESTED') {\n if (state.webSocket) {\n state.webSocket.close()\n }\n }\n if (action.type === 'ACCESS_REQUEST') {\n return {\n ...state,\n accessRequests: action.data,\n }\n }\n if (action.type === 'DISCOVERY_CHANGED') {\n return {\n ...state,\n discoveredProviders: action.data,\n }\n }\n if (action.type === 'DEBUG_SETTINGS') {\n return {\n ...state,\n log: { ...state.log, ...action.data },\n }\n }\n if (action.type === 'LOG') {\n const style = action.data.isError ? 'color:red' : 'font-weight:lighter'\n const html =\n `<span style=\"${style}\">` +\n action.data.ts +\n '</span> ' +\n convert.toHtml(escape(action.data.row))\n state.log.entries.push({\n i: logEntryCount++,\n d: html,\n })\n if (state.log.entries.length > 100) {\n state.log.entries.shift()\n }\n return {\n ...state,\n log: {\n ...state.log,\n entries: state.log.entries,\n },\n }\n }\n if (action.type === 'RESTORESTATUS') {\n return {\n ...state,\n restoreStatus: action.data,\n }\n }\n if (action.type === 'SOURCEPRIORITIES') {\n const sourcePrioritiesMap = action.data\n const sourcePriorities = Object.keys(sourcePrioritiesMap).map(\n (key, i) => ({ path: key, priorities: sourcePrioritiesMap[key] })\n )\n sourcePriorities.state = {}\n\n return {\n ...state,\n sourcePrioritiesData: {\n sourcePriorities,\n saveState: {\n dirty: false,\n timeoutsOk: true,\n },\n },\n }\n }\n return {\n ...state,\n sourcePrioritiesData: reduceSourcePriorities(\n state.sourcePrioritiesData,\n action\n ),\n }\n },\n state,\n applyMiddleware(thunk)\n)\n\nfunction nameCollator(left, right) {\n if (left.name < right.name) {\n return -1\n } else if (left.name > right.name) {\n return 1\n } else {\n return 0\n }\n}\n\nwindow.serverRoutesPrefix = '/skServer'\n\n__webpack_init_sharing__('default')\n\nReactDOM.render(\n <HashRouter>\n <Switch>\n <Provider store={store}>\n <Route path=\"/\" name=\"Home\" component={Full} />\n </Provider>\n </Switch>\n </HashRouter>,\n document.getElementById('root')\n)\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-header .navbar-nav .dropdown-menu-right{right:auto}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./scss/core/_dropdown-menu-right.scss\"],\"names\":[],\"mappings\":\"AACA,6CAGM,UAAW\",\"sourcesContent\":[\"// Temp fix for reactstrap\\n.app-header {\\n .navbar-nav {\\n .dropdown-menu-right {\\n right: auto;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"../public_src/img/signal-k-logo-image-text.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*!\\n * CoreUI - Open Source Bootstrap Admin Template\\n * @version v1.0.6\\n * @link http://coreui.io\\n * Copyright (c) 2017 creativeLabs Łukasz Holeczek\\n * @license MIT\\n *//*!\\n * Bootstrap v4.6.2 (https://getbootstrap.com/)\\n * Copyright 2011-2022 The Bootstrap Authors\\n * Copyright 2011-2022 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */:root{--blue: #039;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #f86c6b;--orange: #f8cb00;--yellow: #fc0;--green: #4dbd74;--teal: #20c997;--cyan: #63c2de;--white: #fff;--gray: #536c79;--gray-dark: #29363d;--blue: #039;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #f86c6b;--orange: #f8cb00;--#ff0: #fc0;--green: #4dbd74;--teal: #20c997;--cyan: #63c2de;--#fff: #fff;--gray: #536c79;--primary: #039;--secondary: #a4b7c1;--success: #4dbd74;--info: #63c2de;--warning: #fc0;--danger: #f86c6b;--light: #f0f3f5;--dark: #29363d;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", \\\"Liberation Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",\\\"Liberation Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";font-size:.875rem;font-weight:400;line-height:1.5;color:#151b1e;text-align:left;background-color:#e4e5e6}[tabindex=\\\"-1\\\"]:focus:not(:focus-visible){outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#039;text-decoration:none;background-color:transparent}a:hover{color:#001a4d;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#536c79;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=\\\"button\\\"]{cursor:pointer}select{word-wrap:normal}button,[type=\\\"button\\\"],[type=\\\"reset\\\"],[type=\\\"submit\\\"]{-webkit-appearance:button}button:not(:disabled),[type=\\\"button\\\"]:not(:disabled),[type=\\\"reset\\\"]:not(:disabled),[type=\\\"submit\\\"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=\\\"button\\\"]::-moz-focus-inner,[type=\\\"reset\\\"]::-moz-focus-inner,[type=\\\"submit\\\"]::-moz-focus-inner{padding:0;border-style:none}input[type=\\\"radio\\\"],input[type=\\\"checkbox\\\"]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=\\\"number\\\"]::-webkit-inner-spin-button,[type=\\\"number\\\"]::-webkit-outer-spin-button{height:auto}[type=\\\"search\\\"]{outline-offset:-2px;-webkit-appearance:none}[type=\\\"search\\\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:2.1875rem}h2,.h2{font-size:1.75rem}h3,.h3{font-size:1.53125rem}h4,.h4{font-size:1.3125rem}h5,.h5{font-size:1.09375rem}h6,.h6{font-size:.875rem}.lead{font-size:1.09375rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:.875em;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.09375rem}.blockquote-footer{display:block;font-size:.875em;color:#536c79}.blockquote-footer::before{content:\\\"\\\\2014\\\\00A0\\\"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#e4e5e6;border:1px solid #a4b7c1;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#536c79}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#151b1e}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#151b1e}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-sm,.container-md,.container-lg,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container,.container-sm{max-width:540px}}@media (min-width: 768px){.container,.container-sm,.container-md{max-width:720px}}@media (min-width: 992px){.container,.container-sm,.container-md,.container-lg{max-width:960px}}@media (min-width: 1200px){.container,.container-sm,.container-md,.container-lg,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=\\\"col-\\\"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#151b1e}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #a4b7c1}.table thead th{vertical-align:bottom;border-bottom:2px solid #a4b7c1}.table tbody+tbody{border-top:2px solid #a4b7c1}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #a4b7c1}.table-bordered th,.table-bordered td{border:1px solid #a4b7c1}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{color:#151b1e;background-color:rgba(0,0,0,0.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#b8c6e2}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#7a95ca}.table-hover .table-primary:hover{background-color:#a6b7db}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a6b7db}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#e6ebee}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#d0dadf}.table-hover .table-secondary:hover{background-color:#d7dfe4}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#d7dfe4}.table-success,.table-success>th,.table-success>td{background-color:#cdedd8}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#a2ddb7}.table-hover .table-success:hover{background-color:#bae6c9}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#bae6c9}.table-info,.table-info>th,.table-info>td{background-color:#d3eef6}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#aedfee}.table-hover .table-info:hover{background-color:#bee6f2}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#bee6f2}.table-warning,.table-warning>th,.table-warning>td{background-color:#fff1b8}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#ffe47a}.table-hover .table-warning:hover{background-color:#ffec9f}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffec9f}.table-danger,.table-danger>th,.table-danger>td{background-color:#fdd6d6}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#fbb3b2}.table-hover .table-danger:hover{background-color:#fcbebe}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#fcbebe}.table-light,.table-light>th,.table-light>td{background-color:#fbfcfc}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#f7f9fa}.table-hover .table-light:hover{background-color:#ecf1f1}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ecf1f1}.table-dark,.table-dark>th,.table-dark>td{background-color:#c3c7c9}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#90969a}.table-hover .table-dark:hover{background-color:#b6babd}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b6babd}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table .thead-dark th{color:#fff;background-color:#29363d;border-color:#384a54}.table .thead-light th{color:#3e515b;background-color:#c2cfd6;border-color:#a4b7c1}.table-dark{color:#fff;background-color:#29363d}.table-dark th,.table-dark td,.table-dark thead th{border-color:#384a54}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.5;color:#3e515b;background-color:#fff;background-clip:padding-box;border:1px solid #c2cfd6;border-radius:0;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#3e515b;background-color:#fff;border-color:#1a66ff;outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.form-control::placeholder{color:#536c79;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#c2cfd6;opacity:1}input[type=\\\"date\\\"].form-control,input[type=\\\"time\\\"].form-control,input[type=\\\"datetime-local\\\"].form-control,input[type=\\\"month\\\"].form-control{appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #3e515b}select.form-control:focus::-ms-value{color:#3e515b;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.09375rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.76563rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:.875rem;line-height:1.5;color:#151b1e;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.76563rem;line-height:1.5}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.09375rem;line-height:1.5}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=\\\"col-\\\"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled] ~ .form-check-label,.form-check-input:disabled ~ .form-check-label{color:#536c79}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#4dbd74}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.76563rem;line-height:1.5;color:#fff;background-color:rgba(77,189,116,0.9)}.form-row>.col>.valid-tooltip,.form-row>[class*=\\\"col-\\\"]>.valid-tooltip{left:5px}.was-validated :valid ~ .valid-feedback,.was-validated :valid ~ .valid-tooltip,.is-valid ~ .valid-feedback,.is-valid ~ .valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#4dbd74;padding-right:calc(1.5em + .75rem) !important;background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%234dbd74' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#4dbd74;box-shadow:0 0 0 .2rem rgba(77,189,116,0.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem !important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#4dbd74;padding-right:calc(.75em + 2.3125rem) !important;background:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%2329363d' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") right .75rem center/8px 10px no-repeat,#fff url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%234dbd74' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#4dbd74;box-shadow:0 0 0 .2rem rgba(77,189,116,0.25)}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#4dbd74}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#4dbd74}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{border-color:#4dbd74}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{border-color:#72cb91;background-color:#72cb91}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(77,189,116,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{border-color:#4dbd74}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#4dbd74}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{border-color:#4dbd74;box-shadow:0 0 0 .2rem rgba(77,189,116,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#f86c6b}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.76563rem;line-height:1.5;color:#fff;background-color:rgba(248,108,107,0.9)}.form-row>.col>.invalid-tooltip,.form-row>[class*=\\\"col-\\\"]>.invalid-tooltip{left:5px}.was-validated :invalid ~ .invalid-feedback,.was-validated :invalid ~ .invalid-tooltip,.is-invalid ~ .invalid-feedback,.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#f86c6b;padding-right:calc(1.5em + .75rem) !important;background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23f86c6b' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f86c6b' stroke='none'/%3e%3c/svg%3e\\\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#f86c6b;box-shadow:0 0 0 .2rem rgba(248,108,107,0.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem !important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#f86c6b;padding-right:calc(.75em + 2.3125rem) !important;background:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%2329363d' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") right .75rem center/8px 10px no-repeat,#fff url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23f86c6b' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f86c6b' stroke='none'/%3e%3c/svg%3e\\\") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#f86c6b;box-shadow:0 0 0 .2rem rgba(248,108,107,0.25)}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#f86c6b}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#f86c6b}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{border-color:#f86c6b}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{border-color:#fa9c9c;background-color:#fa9c9c}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(248,108,107,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{border-color:#f86c6b}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#f86c6b}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{border-color:#f86c6b;box-shadow:0 0 0 .2rem rgba(248,108,107,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#151b1e;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:.875rem;line-height:1.5;border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#151b1e;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#039;border-color:#039}.btn-primary:hover{color:#fff;background-color:#002673;border-color:#026}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#002673;border-color:#026;box-shadow:0 0 0 .2rem rgba(38,82,168,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#039;border-color:#039}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#026;border-color:#001e59}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,82,168,0.5)}.btn-secondary{color:#151b1e;background-color:#a4b7c1;border-color:#a4b7c1}.btn-secondary:hover{color:#151b1e;background-color:#8da5b2;border-color:#869fac}.btn-secondary:focus,.btn-secondary.focus{color:#151b1e;background-color:#8da5b2;border-color:#869fac;box-shadow:0 0 0 .2rem rgba(143,160,169,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#151b1e;background-color:#a4b7c1;border-color:#a4b7c1}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#151b1e;background-color:#869fac;border-color:#7e99a7}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(143,160,169,0.5)}.btn-success{color:#fff;background-color:#4dbd74;border-color:#4dbd74}.btn-success:hover{color:#fff;background-color:#3ea662;border-color:#3a9d5d}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#3ea662;border-color:#3a9d5d;box-shadow:0 0 0 .2rem rgba(104,199,137,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#4dbd74;border-color:#4dbd74}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#3a9d5d;border-color:#379457}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(104,199,137,0.5)}.btn-info{color:#151b1e;background-color:#63c2de;border-color:#63c2de}.btn-info:hover{color:#151b1e;background-color:#43b6d7;border-color:#39b2d5}.btn-info:focus,.btn-info.focus{color:#151b1e;background-color:#43b6d7;border-color:#39b2d5;box-shadow:0 0 0 .2rem rgba(87,169,193,0.5)}.btn-info.disabled,.btn-info:disabled{color:#151b1e;background-color:#63c2de;border-color:#63c2de}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#39b2d5;border-color:#2eadd3}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(87,169,193,0.5)}.btn-warning{color:#151b1e;background-color:#fc0;border-color:#fc0}.btn-warning:hover{color:#151b1e;background-color:#d9ad00;border-color:#cca300}.btn-warning:focus,.btn-warning.focus{color:#151b1e;background-color:#d9ad00;border-color:#cca300;box-shadow:0 0 0 .2rem rgba(220,177,5,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#151b1e;background-color:#fc0;border-color:#fc0}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#151b1e;background-color:#cca300;border-color:#bf9900}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,177,5,0.5)}.btn-danger{color:#fff;background-color:#f86c6b;border-color:#f86c6b}.btn-danger:hover{color:#fff;background-color:#f64846;border-color:#f63c3a}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#f64846;border-color:#f63c3a;box-shadow:0 0 0 .2rem rgba(249,130,129,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#f86c6b;border-color:#f86c6b}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#f63c3a;border-color:#f5302e}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(249,130,129,0.5)}.btn-light{color:#151b1e;background-color:#f0f3f5;border-color:#f0f3f5}.btn-light:hover{color:#151b1e;background-color:#d9e1e6;border-color:#d1dbe1}.btn-light:focus,.btn-light.focus{color:#151b1e;background-color:#d9e1e6;border-color:#d1dbe1;box-shadow:0 0 0 .2rem rgba(207,211,213,0.5)}.btn-light.disabled,.btn-light:disabled{color:#151b1e;background-color:#f0f3f5;border-color:#f0f3f5}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#151b1e;background-color:#d1dbe1;border-color:#cad4dc}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(207,211,213,0.5)}.btn-dark{color:#fff;background-color:#29363d;border-color:#29363d}.btn-dark:hover{color:#fff;background-color:#1a2226;border-color:#151b1f}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#1a2226;border-color:#151b1f;box-shadow:0 0 0 .2rem rgba(73,84,90,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#29363d;border-color:#29363d}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#151b1f;border-color:#0f1417}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(73,84,90,0.5)}.btn-outline-primary{color:#039;border-color:#039}.btn-outline-primary:hover{color:#fff;background-color:#039;border-color:#039}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(0,51,153,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#039;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#039;border-color:#039}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,51,153,0.5)}.btn-outline-secondary{color:#a4b7c1;border-color:#a4b7c1}.btn-outline-secondary:hover{color:#151b1e;background-color:#a4b7c1;border-color:#a4b7c1}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(164,183,193,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#a4b7c1;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#151b1e;background-color:#a4b7c1;border-color:#a4b7c1}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(164,183,193,0.5)}.btn-outline-success{color:#4dbd74;border-color:#4dbd74}.btn-outline-success:hover{color:#fff;background-color:#4dbd74;border-color:#4dbd74}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(77,189,116,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#4dbd74;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#4dbd74;border-color:#4dbd74}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(77,189,116,0.5)}.btn-outline-info{color:#63c2de;border-color:#63c2de}.btn-outline-info:hover{color:#151b1e;background-color:#63c2de;border-color:#63c2de}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(99,194,222,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#63c2de;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#151b1e;background-color:#63c2de;border-color:#63c2de}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(99,194,222,0.5)}.btn-outline-warning{color:#fc0;border-color:#fc0}.btn-outline-warning:hover{color:#151b1e;background-color:#fc0;border-color:#fc0}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(255,204,0,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#fc0;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#151b1e;background-color:#fc0;border-color:#fc0}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,204,0,0.5)}.btn-outline-danger{color:#f86c6b;border-color:#f86c6b}.btn-outline-danger:hover{color:#fff;background-color:#f86c6b;border-color:#f86c6b}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(248,108,107,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#f86c6b;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#f86c6b;border-color:#f86c6b}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,108,107,0.5)}.btn-outline-light{color:#f0f3f5;border-color:#f0f3f5}.btn-outline-light:hover{color:#151b1e;background-color:#f0f3f5;border-color:#f0f3f5}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(240,243,245,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f0f3f5;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#151b1e;background-color:#f0f3f5;border-color:#f0f3f5}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(240,243,245,0.5)}.btn-outline-dark{color:#29363d;border-color:#29363d}.btn-outline-dark:hover{color:#fff;background-color:#29363d;border-color:#29363d}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(41,54,61,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#29363d;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#29363d;border-color:#29363d}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(41,54,61,0.5)}.btn-link{font-weight:400;color:#039;text-decoration:none}.btn-link:hover{color:#001a4d;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline}.btn-link:disabled,.btn-link.disabled{color:#536c79;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.09375rem;line-height:1.5;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.76563rem;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=\\\"submit\\\"].btn-block,input[type=\\\"reset\\\"].btn-block,input[type=\\\"button\\\"].btn-block{width:100%}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing.width{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:0 0;margin:.125rem 0 0;font-size:.875rem;color:#151b1e;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #c2cfd6}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\"}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=\\\"top\\\"],.dropdown-menu[x-placement^=\\\"right\\\"],.dropdown-menu[x-placement^=\\\"bottom\\\"],.dropdown-menu[x-placement^=\\\"left\\\"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #f0f3f5}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#151b1e;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#0b0e0f;text-decoration:none;background-color:#c2cfd6}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#039}.dropdown-item.disabled,.dropdown-item:disabled{color:#678898;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:0 1.5rem;margin-bottom:0;font-size:.76563rem;color:#536c79;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#151b1e}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=\\\"radio\\\"],.btn-group-toggle>.btn input[type=\\\"checkbox\\\"],.btn-group-toggle>.btn-group>.btn input[type=\\\"radio\\\"],.btn-group-toggle>.btn-group>.btn input[type=\\\"checkbox\\\"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-file{display:flex;align-items:center}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:.875rem;font-weight:400;line-height:1.5;color:#3e515b;text-align:center;white-space:nowrap;background-color:#f0f3f5;border:1px solid #c2cfd6}.input-group-text input[type=\\\"radio\\\"],.input-group-text input[type=\\\"checkbox\\\"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.09375rem;line-height:1.5}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:.76563rem;line-height:1.5}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.custom-control{position:relative;z-index:1;display:block;min-height:1.3125rem;padding-left:1.5rem;print-color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.15625rem;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;border-color:#039;background-color:#039}.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.custom-control-input:focus:not(:checked) ~ .custom-control-label::before{border-color:#1a66ff}.custom-control-input:not(:disabled):active ~ .custom-control-label::before{color:#fff;background-color:#4d88ff;border-color:#4d88ff}.custom-control-input[disabled] ~ .custom-control-label,.custom-control-input:disabled ~ .custom-control-label{color:#536c79}.custom-control-input[disabled] ~ .custom-control-label::before,.custom-control-input:disabled ~ .custom-control-label::before{background-color:#c2cfd6}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.15625rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:\\\"\\\";background-color:#fff;border:1px solid #678898}.custom-control-label::after{position:absolute;top:.15625rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\\\"\\\";background:50% / 50% 50% no-repeat}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\\\")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{border-color:#039;background-color:#039}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\\\")}.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0,51,153,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(0,51,153,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked ~ .custom-control-label::after{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\\\")}.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0,51,153,0.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.15625rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#678898;border-radius:.5rem;transition:transform 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked ~ .custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0,51,153,0.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.5;color:#3e515b;vertical-align:middle;background:#fff url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%2329363d' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") right .75rem center/8px 10px no-repeat;border:1px solid #c2cfd6;border-radius:0;appearance:none}.custom-select:focus{border-color:#1a66ff;outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.custom-select:focus::-ms-value{color:#3e515b;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\\\"1\\\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#536c79;background-color:#c2cfd6}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #3e515b}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.76563rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.09375rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus ~ .custom-file-label{border-color:#1a66ff;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.custom-file-input[disabled] ~ .custom-file-label,.custom-file-input:disabled ~ .custom-file-label{background-color:#c2cfd6}.custom-file-input:lang(en) ~ .custom-file-label::after{content:\\\"Browse\\\"}.custom-file-input ~ .custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#3e515b;background-color:#fff;border:1px solid #c2cfd6}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#3e515b;content:\\\"Browse\\\";background-color:#f0f3f5;border-left:inherit}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #e4e5e6,0 0 0 .2rem rgba(0,51,153,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #e4e5e6,0 0 0 .2rem rgba(0,51,153,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #e4e5e6,0 0 0 .2rem rgba(0,51,153,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#039;border:0;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#4d88ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#a4b7c1;border-color:transparent}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#039;border:0;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#4d88ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#a4b7c1;border-color:transparent}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#039;border:0;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#4d88ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#a4b7c1}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#a4b7c1}.custom-range:disabled::-webkit-slider-thumb{background-color:#678898}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#678898}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#678898}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link,.navbar .dropdown-toggle{display:block;padding:.5rem 1rem}.nav-link:hover,.navbar .dropdown-toggle:hover,.nav-link:focus,.navbar .dropdown-toggle:focus{text-decoration:none}.nav-link.disabled,.navbar .disabled.dropdown-toggle{color:#536c79;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #a4b7c1}.nav-tabs .nav-link,.nav-tabs .navbar .dropdown-toggle,.navbar .nav-tabs .dropdown-toggle{margin-bottom:-1px;background-color:transparent;border:1px solid transparent}.nav-tabs .nav-link:hover,.nav-tabs .navbar .dropdown-toggle:hover,.navbar .nav-tabs .dropdown-toggle:hover,.nav-tabs .nav-link:focus,.nav-tabs .navbar .dropdown-toggle:focus,.navbar .nav-tabs .dropdown-toggle:focus{isolation:isolate;border-color:#c2cfd6 #c2cfd6 #a4b7c1}.nav-tabs .nav-link.disabled,.nav-tabs .navbar .disabled.dropdown-toggle,.navbar .nav-tabs .disabled.dropdown-toggle{color:#536c79;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .navbar .active.dropdown-toggle,.navbar .nav-tabs .active.dropdown-toggle,.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-item.show .navbar .dropdown-toggle,.navbar .nav-tabs .nav-item.show .dropdown-toggle{color:#3e515b;background-color:#e4e5e6;border-color:#a4b7c1 #a4b7c1 #e4e5e6}.nav-tabs .dropdown-menu{margin-top:-1px}.nav-pills .nav-link,.nav-pills .navbar .dropdown-toggle,.navbar .nav-pills .dropdown-toggle{background:none;border:0}.nav-pills .nav-link.active,.nav-pills .navbar .active.dropdown-toggle,.navbar .nav-pills .active.dropdown-toggle,.nav-pills .show>.nav-link,.nav-pills .navbar .show>.dropdown-toggle,.navbar .nav-pills .show>.dropdown-toggle{color:#fff;background-color:#039}.nav-fill>.nav-link,.navbar .nav-fill>.dropdown-toggle,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.navbar .nav-justified>.dropdown-toggle,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.33594rem;padding-bottom:.33594rem;margin-right:1rem;font-size:1.09375rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link,.navbar-nav .navbar .dropdown-toggle,.navbar .navbar-nav .dropdown-toggle{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.09375rem;line-height:1;background-color:transparent;border:1px solid transparent}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\\\"\\\";background:50% / 100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link,.navbar-expand-sm .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand-sm .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link,.navbar-expand-md .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand-md .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link,.navbar-expand-lg .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand-lg .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link,.navbar-expand-xl .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand-xl .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link,.navbar-expand .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link,.navbar-light .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-light .navbar-nav .dropdown-toggle{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .navbar .dropdown-toggle:hover,.navbar .navbar-light .navbar-nav .dropdown-toggle:hover,.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .navbar .dropdown-toggle:focus,.navbar .navbar-light .navbar-nav .dropdown-toggle:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled,.navbar-light .navbar-nav .navbar .disabled.dropdown-toggle,.navbar .navbar-light .navbar-nav .disabled.dropdown-toggle{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .navbar .show>.dropdown-toggle,.navbar .navbar-light .navbar-nav .show>.dropdown-toggle,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .navbar .active>.dropdown-toggle,.navbar .navbar-light .navbar-nav .active>.dropdown-toggle,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .navbar .show.dropdown-toggle,.navbar .navbar-light .navbar-nav .show.dropdown-toggle,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .navbar .active.dropdown-toggle,.navbar .navbar-light .navbar-nav .active.dropdown-toggle{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280,0,0,0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link,.navbar-dark .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-dark .navbar-nav .dropdown-toggle{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .navbar .dropdown-toggle:hover,.navbar .navbar-dark .navbar-nav .dropdown-toggle:hover,.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .navbar .dropdown-toggle:focus,.navbar .navbar-dark .navbar-nav .dropdown-toggle:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled,.navbar-dark .navbar-nav .navbar .disabled.dropdown-toggle,.navbar .navbar-dark .navbar-nav .disabled.dropdown-toggle{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .navbar .show>.dropdown-toggle,.navbar .navbar-dark .navbar-nav .show>.dropdown-toggle,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .navbar .active>.dropdown-toggle,.navbar .navbar-dark .navbar-nav .active>.dropdown-toggle,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .navbar .show.dropdown-toggle,.navbar .navbar-dark .navbar-nav .show.dropdown-toggle,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .navbar .active.dropdown-toggle,.navbar .navbar-dark .navbar-nav .active.dropdown-toggle{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid #c2cfd6}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0}.card>.list-group:last-child{border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body,.card-block{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:#f0f3f5;border-bottom:1px solid #c2cfd6}.card-footer{padding:.75rem 1.25rem;background-color:#f0f3f5;border-top:1px solid #c2cfd6}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-deck .card{margin-bottom:15px}@media (min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width: 576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0}.accordion>.card>.card-header{margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1.5rem;list-style:none;background-color:#fff}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#536c79;content:\\\"/\\\"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#536c79}.pagination{display:flex;padding-left:0;list-style:none}.page-link,.pagination-datatables li a,.pagination li a{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#039;background-color:#fff;border:1px solid #a4b7c1}.page-link:hover,.pagination-datatables li a:hover,.pagination li a:hover{z-index:2;color:#001a4d;text-decoration:none;background-color:#c2cfd6;border-color:#a4b7c1}.page-link:focus,.pagination-datatables li a:focus,.pagination li a:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.page-item:first-child .page-link,.pagination-datatables li:first-child .page-link,.pagination li:first-child .page-link,.page-item:first-child .pagination-datatables li a,.pagination-datatables li .page-item:first-child a,.pagination-datatables li:first-child a,.page-item:first-child .pagination li a,.pagination li .page-item:first-child a,.pagination li:first-child a{margin-left:0}.page-item.active .page-link,.pagination-datatables li.active .page-link,.pagination li.active .page-link,.page-item.active .pagination-datatables li a,.pagination-datatables li .page-item.active a,.pagination-datatables li.active a,.page-item.active .pagination li a,.pagination li .page-item.active a,.pagination li.active a{z-index:3;color:#fff;background-color:#039;border-color:#039}.page-item.disabled .page-link,.pagination-datatables li.disabled .page-link,.pagination li.disabled .page-link,.page-item.disabled .pagination-datatables li a,.pagination-datatables li .page-item.disabled a,.pagination-datatables li.disabled a,.page-item.disabled .pagination li a,.pagination li .page-item.disabled a,.pagination li.disabled a{color:#536c79;pointer-events:none;cursor:auto;background-color:#fff;border-color:#a4b7c1}.pagination-lg .page-link,.pagination-lg .pagination-datatables li a,.pagination-datatables li .pagination-lg a,.pagination-lg .pagination li a,.pagination li .pagination-lg a{padding:.75rem 1.5rem;font-size:1.09375rem;line-height:1.5}.pagination-sm .page-link,.pagination-sm .pagination-datatables li a,.pagination-datatables li .pagination-sm a,.pagination-sm .pagination li a,.pagination li .pagination-sm a{padding:.25rem .5rem;font-size:.76563rem;line-height:1.5}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em}.badge-primary{color:#fff;background-color:#039}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#026}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.5)}.badge-secondary{color:#151b1e;background-color:#a4b7c1}a.badge-secondary:hover,a.badge-secondary:focus{color:#151b1e;background-color:#869fac}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(164,183,193,0.5)}.badge-success{color:#fff;background-color:#4dbd74}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#3a9d5d}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(77,189,116,0.5)}.badge-info{color:#151b1e;background-color:#63c2de}a.badge-info:hover,a.badge-info:focus{color:#151b1e;background-color:#39b2d5}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(99,194,222,0.5)}.badge-warning{color:#151b1e;background-color:#fc0}a.badge-warning:hover,a.badge-warning:focus{color:#151b1e;background-color:#cca300}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,204,0,0.5)}.badge-danger{color:#fff;background-color:#f86c6b}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#f63c3a}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,108,107,0.5)}.badge-light{color:#151b1e;background-color:#f0f3f5}a.badge-light:hover,a.badge-light:focus{color:#151b1e;background-color:#d1dbe1}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(240,243,245,0.5)}.badge-dark{color:#fff;background-color:#29363d}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#151b1f}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(41,54,61,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#c2cfd6}@media (min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3.8125rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#001b50;background-color:#ccd6eb;border-color:#b8c6e2}.alert-primary hr{border-top-color:#a6b7db}.alert-primary .alert-link{color:#000a1d}.alert-secondary{color:#555f64;background-color:#edf1f3;border-color:#e6ebee}.alert-secondary hr{border-top-color:#d7dfe4}.alert-secondary .alert-link{color:#3e4548}.alert-success{color:#28623c;background-color:#dbf2e3;border-color:#cdedd8}.alert-success hr{border-top-color:#bae6c9}.alert-success .alert-link{color:#193e26}.alert-info{color:#336573;background-color:#e0f3f8;border-color:#d3eef6}.alert-info hr{border-top-color:#bee6f2}.alert-info .alert-link{color:#234650}.alert-warning{color:#856a00;background-color:#fff5cc;border-color:#fff1b8}.alert-warning hr{border-top-color:#ffec9f}.alert-warning .alert-link{color:#524100}.alert-danger{color:#813838;background-color:#fee2e1;border-color:#fdd6d6}.alert-danger hr{border-top-color:#fcbebe}.alert-danger .alert-link{color:#5d2929}.alert-light{color:#7d7e7f;background-color:#fcfdfd;border-color:#fbfcfc}.alert-light hr{border-top-color:#ecf1f1}.alert-light .alert-link{color:#646565}.alert-dark{color:#151c20;background-color:#d4d7d8;border-color:#c3c7c9}.alert-dark hr{border-top-color:#b6babd}.alert-dark .alert-link{color:#010101}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.65625rem;background-color:#f0f3f5}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#039;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#3e515b;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#3e515b;text-decoration:none;background-color:#f0f3f5}.list-group-item-action:active{color:#151b1e;background-color:#c2cfd6}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item.disabled,.list-group-item:disabled{color:#536c79;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#039;border-color:#039}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#001b50;background-color:#b8c6e2}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#001b50;background-color:#a6b7db}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#001b50;border-color:#001b50}.list-group-item-secondary{color:#555f64;background-color:#e6ebee}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#555f64;background-color:#d7dfe4}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#555f64;border-color:#555f64}.list-group-item-success{color:#28623c;background-color:#cdedd8}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#28623c;background-color:#bae6c9}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#28623c;border-color:#28623c}.list-group-item-info{color:#336573;background-color:#d3eef6}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#336573;background-color:#bee6f2}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#336573;border-color:#336573}.list-group-item-warning{color:#856a00;background-color:#fff1b8}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#856a00;background-color:#ffec9f}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856a00;border-color:#856a00}.list-group-item-danger{color:#813838;background-color:#fdd6d6}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#813838;background-color:#fcbebe}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#813838;border-color:#813838}.list-group-item-light{color:#7d7e7f;background-color:#fbfcfc}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#7d7e7f;background-color:#ecf1f1}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#7d7e7f;border-color:#7d7e7f}.list-group-item-dark{color:#151c20;background-color:#c3c7c9}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#151c20;background-color:#b6babd}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#151c20;border-color:#151c20}.close{float:right;font-size:1.3125rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border:1px solid rgba(0,0,0,0.1);box-shadow:0 0.25rem 0.75rem rgba(0,0,0,0.1);opacity:0}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#536c79;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,0.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:min-content;content:\\\"\\\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #a4b7c1}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #a4b7c1}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:min-content}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",\\\"Liberation Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.76563rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=\\\"top\\\"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=\\\"top\\\"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=\\\"top\\\"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=\\\"right\\\"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=\\\"right\\\"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=\\\"right\\\"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=\\\"bottom\\\"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=\\\"bottom\\\"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=\\\"bottom\\\"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=\\\"left\\\"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=\\\"left\\\"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=\\\"left\\\"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",\\\"Liberation Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.76563rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^=\\\"top\\\"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^=\\\"top\\\"]>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^=\\\"top\\\"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^=\\\"top\\\"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^=\\\"right\\\"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^=\\\"right\\\"]>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^=\\\"right\\\"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^=\\\"right\\\"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^=\\\"bottom\\\"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^=\\\"bottom\\\"]>.arrow{top:calc(-.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^=\\\"bottom\\\"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^=\\\"bottom\\\"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^=\\\"bottom\\\"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\\\"\\\";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^=\\\"left\\\"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^=\\\"left\\\"]>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^=\\\"left\\\"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^=\\\"left\\\"]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:.875rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#151b1e}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:\\\"\\\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:50% / 100% 100% no-repeat}.carousel-control-prev-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\\\")}.carousel-control-next-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\\\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentcolor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentcolor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#039 !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#026 !important}.bg-secondary{background-color:#a4b7c1 !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#869fac !important}.bg-success{background-color:#4dbd74 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#3a9d5d !important}.bg-info{background-color:#63c2de !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#39b2d5 !important}.bg-warning{background-color:#fc0 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#cca300 !important}.bg-danger{background-color:#f86c6b !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#f63c3a !important}.bg-light{background-color:#f0f3f5 !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#d1dbe1 !important}.bg-dark{background-color:#29363d !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#151b1f !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #a4b7c1 !important}.border-top{border-top:1px solid #a4b7c1 !important}.border-right{border-right:1px solid #a4b7c1 !important}.border-bottom{border-bottom:1px solid #a4b7c1 !important}.border-left{border-left:1px solid #a4b7c1 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#039 !important}.border-secondary{border-color:#a4b7c1 !important}.border-success{border-color:#4dbd74 !important}.border-info{border-color:#63c2de !important}.border-warning{border-color:#fc0 !important}.border-danger{border-color:#f86c6b !important}.border-light{border-color:#f0f3f5 !important}.border-dark{border-color:#29363d !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded{border-radius:.25rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-right{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-left{border-top-left-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-lg{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:\\\"\\\"}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:\\\"\\\"}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 576px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 992px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 1200px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-.25rem !important}.mt-n1,.my-n1{margin-top:-.25rem !important}.mr-n1,.mx-n1{margin-right:-.25rem !important}.mb-n1,.my-n1{margin-bottom:-.25rem !important}.ml-n1,.mx-n1{margin-left:-.25rem !important}.m-n2{margin:-.5rem !important}.mt-n2,.my-n2{margin-top:-.5rem !important}.mr-n2,.mx-n2{margin-right:-.5rem !important}.mb-n2,.my-n2{margin-bottom:-.5rem !important}.ml-n2,.mx-n2{margin-left:-.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem !important}.m-sm-n2{margin:-.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem !important}.m-md-n2{margin:-.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem !important}.m-lg-n2{margin:-.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem !important}.m-xl-n2{margin:-.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\\\"\\\";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#039 !important}a.text-primary:hover,a.text-primary:focus{color:#001a4d !important}.text-secondary{color:#a4b7c1 !important}a.text-secondary:hover,a.text-secondary:focus{color:#7793a2 !important}.text-success{color:#4dbd74 !important}a.text-success:hover,a.text-success:focus{color:#338a52 !important}.text-info{color:#63c2de !important}a.text-info:hover,a.text-info:focus{color:#2ba6ca !important}.text-warning{color:#fc0 !important}a.text-warning:hover,a.text-warning:focus{color:#b38f00 !important}.text-danger{color:#f86c6b !important}a.text-danger:hover,a.text-danger:focus{color:#f52322 !important}.text-light{color:#f0f3f5 !important}a.text-light:hover,a.text-light:focus{color:#c2ced6 !important}.text-dark{color:#29363d !important}a.text-dark:hover,a.text-dark:focus{color:#0a0e0f !important}.text-body{color:#151b1e !important}.text-muted{color:#536c79 !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;word-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:\\\" (\\\" attr(title) \\\")\\\"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #678898;page-break-inside:avoid}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #a4b7c1 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#a4b7c1}.table .thead-dark th{color:inherit;border-color:#a4b7c1}}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.font-xs{font-size:.75rem !important}.font-sm{font-size:.85rem !important}.font-lg{font-size:1rem !important}.font-xl{font-size:1.25rem !important}.font-2xl{font-size:1.5rem !important}.font-3xl{font-size:1.75rem !important}.font-4xl{font-size:2rem !important}.font-5xl{font-size:2.5rem !important}.animated{animation-duration:1s}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{animation-duration:2s}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn}.aside-menu{z-index:1019;width:250px;color:#29363d;background:#fff;border-left:1px solid #a4b7c1}.aside-menu .nav-tabs{border-color:#a4b7c1}.aside-menu .nav-tabs .nav-link,.aside-menu .nav-tabs .navbar .dropdown-toggle,.navbar .aside-menu .nav-tabs .dropdown-toggle{padding:.75rem 1rem;color:#151b1e;border-top:0}.aside-menu .nav-tabs .nav-link.active,.aside-menu .nav-tabs .navbar .active.dropdown-toggle,.navbar .aside-menu .nav-tabs .active.dropdown-toggle{color:#039;border-right-color:#a4b7c1;border-left-color:#a4b7c1}.aside-menu .nav-tabs .nav-item:first-child .nav-link,.aside-menu .nav-tabs .nav-item:first-child .navbar .dropdown-toggle,.navbar .aside-menu .nav-tabs .nav-item:first-child .dropdown-toggle{border-left:0}.aside-menu .tab-content{position:relative;overflow-x:hidden;overflow-y:auto;border:0;border-top:1px solid #a4b7c1;-ms-overflow-style:-ms-autohiding-scrollbar}.aside-menu .tab-content::-webkit-scrollbar{width:10px;margin-left:-10px;-webkit-appearance:none}.aside-menu .tab-content::-webkit-scrollbar-track{background-color:#fff;border-right:1px solid #f2f2f2;border-left:1px solid #f2f2f2}.aside-menu .tab-content::-webkit-scrollbar-thumb{height:50px;background-color:#e6e6e6;background-clip:content-box;border-color:transparent;border-style:solid;border-width:1px 2px}.aside-menu .tab-content .tab-pane{padding:0}.img-avatar{border-radius:50em}.avatar{position:relative;display:inline-block;width:36px}.avatar .img-avatar{width:36px;height:36px}.avatar .avatar-status{position:absolute;right:0;bottom:0;display:block;width:10px;height:10px;border:1px solid #fff;border-radius:50em}.avatar.avatar-xs{position:relative;display:inline-block;width:20px}.avatar.avatar-xs .img-avatar{width:20px;height:20px}.avatar.avatar-xs .avatar-status{position:absolute;right:0;bottom:0;display:block;width:8px;height:8px;border:1px solid #fff;border-radius:50em}.avatar.avatar-sm{position:relative;display:inline-block;width:24px}.avatar.avatar-sm .img-avatar{width:24px;height:24px}.avatar.avatar-sm .avatar-status{position:absolute;right:0;bottom:0;display:block;width:8px;height:8px;border:1px solid #fff;border-radius:50em}.avatar.avatar-lg{position:relative;display:inline-block;width:72px}.avatar.avatar-lg .img-avatar{width:72px;height:72px}.avatar.avatar-lg .avatar-status{position:absolute;right:0;bottom:0;display:block;width:12px;height:12px;border:1px solid #fff;border-radius:50em}.avatars-stack .avatar.avatar-xs{margin-right:-10px}.avatars-stack .avatar{margin-right:-15px;transition:margin-left .25s,margin-right .25s}.avatars-stack .avatar:hover{margin-right:0 !important}.badge-pill{border-radius:10rem}.breadcrumb-menu{margin-left:auto}.breadcrumb-menu::before{display:none}.breadcrumb-menu .btn-group{vertical-align:top}.breadcrumb-menu .btn{padding:0 .75rem;color:#536c79;vertical-align:top;border:0}.breadcrumb-menu .btn:hover,.breadcrumb-menu .btn.active{color:#151b1e;background:transparent}.breadcrumb-menu .open .btn{color:#151b1e;background:transparent}.breadcrumb-menu .dropdown-menu{min-width:180px;line-height:1.5}.breadcrumb{position:relative;border-bottom:1px solid #a4b7c1}button{cursor:pointer}.btn .badge{position:absolute;top:2px;right:6px;font-size:9px}.btn-transparent{color:#fff;background-color:transparent;border-color:transparent}.btn [class^=\\\"icon-\\\"],.btn [class*=\\\" icon-\\\"]{display:inline-block;margin-top:-2px;vertical-align:middle}.btn-facebook,.btn-twitter,.btn-linkedin,.btn-flickr,.btn-tumblr,.btn-xing,.btn-github,.btn-html5,.btn-openid,.btn-stack-overflow,.btn-youtube,.btn-css3,.btn-dribbble,.btn-google-plus,.btn-instagram,.btn-pinterest,.btn-vk,.btn-yahoo,.btn-behance,.btn-dropbox,.btn-reddit,.btn-spotify,.btn-vine,.btn-foursquare,.btn-vimeo{position:relative;overflow:hidden;color:#fff !important;text-align:center;padding:.375rem .75rem;font-size:.875rem;line-height:1.5;border:0}.btn-facebook::before,.btn-twitter::before,.btn-linkedin::before,.btn-flickr::before,.btn-tumblr::before,.btn-xing::before,.btn-github::before,.btn-html5::before,.btn-openid::before,.btn-stack-overflow::before,.btn-youtube::before,.btn-css3::before,.btn-dribbble::before,.btn-google-plus::before,.btn-instagram::before,.btn-pinterest::before,.btn-vk::before,.btn-yahoo::before,.btn-behance::before,.btn-dropbox::before,.btn-reddit::before,.btn-spotify::before,.btn-vine::before,.btn-foursquare::before,.btn-vimeo::before{position:absolute;top:0;left:0;display:block;font-family:\\\"FontAwesome\\\";font-style:normal;font-weight:normal;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.btn-facebook:hover,.btn-twitter:hover,.btn-linkedin:hover,.btn-flickr:hover,.btn-tumblr:hover,.btn-xing:hover,.btn-github:hover,.btn-html5:hover,.btn-openid:hover,.btn-stack-overflow:hover,.btn-youtube:hover,.btn-css3:hover,.btn-dribbble:hover,.btn-google-plus:hover,.btn-instagram:hover,.btn-pinterest:hover,.btn-vk:hover,.btn-yahoo:hover,.btn-behance:hover,.btn-dropbox:hover,.btn-reddit:hover,.btn-spotify:hover,.btn-vine:hover,.btn-foursquare:hover,.btn-vimeo:hover{color:#fff}.btn-facebook.icon span,.btn-twitter.icon span,.btn-linkedin.icon span,.btn-flickr.icon span,.btn-tumblr.icon span,.btn-xing.icon span,.btn-github.icon span,.btn-html5.icon span,.btn-openid.icon span,.btn-stack-overflow.icon span,.btn-youtube.icon span,.btn-css3.icon span,.btn-dribbble.icon span,.btn-google-plus.icon span,.btn-instagram.icon span,.btn-pinterest.icon span,.btn-vk.icon span,.btn-yahoo.icon span,.btn-behance.icon span,.btn-dropbox.icon span,.btn-reddit.icon span,.btn-spotify.icon span,.btn-vine.icon span,.btn-foursquare.icon span,.btn-vimeo.icon span{display:none}.btn-facebook.text::before,.btn-twitter.text::before,.btn-linkedin.text::before,.btn-flickr.text::before,.btn-tumblr.text::before,.btn-xing.text::before,.btn-github.text::before,.btn-html5.text::before,.btn-openid.text::before,.btn-stack-overflow.text::before,.btn-youtube.text::before,.btn-css3.text::before,.btn-dribbble.text::before,.btn-google-plus.text::before,.btn-instagram.text::before,.btn-pinterest.text::before,.btn-vk.text::before,.btn-yahoo.text::before,.btn-behance.text::before,.btn-dropbox.text::before,.btn-reddit.text::before,.btn-spotify.text::before,.btn-vine.text::before,.btn-foursquare.text::before,.btn-vimeo.text::before{display:none}.btn-facebook.text span,.btn-twitter.text span,.btn-linkedin.text span,.btn-flickr.text span,.btn-tumblr.text span,.btn-xing.text span,.btn-github.text span,.btn-html5.text span,.btn-openid.text span,.btn-stack-overflow.text span,.btn-youtube.text span,.btn-css3.text span,.btn-dribbble.text span,.btn-google-plus.text span,.btn-instagram.text span,.btn-pinterest.text span,.btn-vk.text span,.btn-yahoo.text span,.btn-behance.text span,.btn-dropbox.text span,.btn-reddit.text span,.btn-spotify.text span,.btn-vine.text span,.btn-foursquare.text span,.btn-vimeo.text span{margin-left:0 !important}.btn-facebook::before,.btn-twitter::before,.btn-linkedin::before,.btn-flickr::before,.btn-tumblr::before,.btn-xing::before,.btn-github::before,.btn-html5::before,.btn-openid::before,.btn-stack-overflow::before,.btn-youtube::before,.btn-css3::before,.btn-dribbble::before,.btn-google-plus::before,.btn-instagram::before,.btn-pinterest::before,.btn-vk::before,.btn-yahoo::before,.btn-behance::before,.btn-dropbox::before,.btn-reddit::before,.btn-spotify::before,.btn-vine::before,.btn-foursquare::before,.btn-vimeo::before{width:2.0625rem;height:2.0625rem;padding:.375rem 0;font-size:.875rem;line-height:1.5}.btn-facebook span,.btn-twitter span,.btn-linkedin span,.btn-flickr span,.btn-tumblr span,.btn-xing span,.btn-github span,.btn-html5 span,.btn-openid span,.btn-stack-overflow span,.btn-youtube span,.btn-css3 span,.btn-dribbble span,.btn-google-plus span,.btn-instagram span,.btn-pinterest span,.btn-vk span,.btn-yahoo span,.btn-behance span,.btn-dropbox span,.btn-reddit span,.btn-spotify span,.btn-vine span,.btn-foursquare span,.btn-vimeo span{margin-left:2.0625rem}.btn-facebook.icon,.btn-twitter.icon,.btn-linkedin.icon,.btn-flickr.icon,.btn-tumblr.icon,.btn-xing.icon,.btn-github.icon,.btn-html5.icon,.btn-openid.icon,.btn-stack-overflow.icon,.btn-youtube.icon,.btn-css3.icon,.btn-dribbble.icon,.btn-google-plus.icon,.btn-instagram.icon,.btn-pinterest.icon,.btn-vk.icon,.btn-yahoo.icon,.btn-behance.icon,.btn-dropbox.icon,.btn-reddit.icon,.btn-spotify.icon,.btn-vine.icon,.btn-foursquare.icon,.btn-vimeo.icon{width:2.0625rem;height:2.0625rem}.btn-facebook.btn-lg,.btn-group-lg>.btn-facebook.btn,.btn-twitter.btn-lg,.btn-group-lg>.btn-twitter.btn,.btn-linkedin.btn-lg,.btn-group-lg>.btn-linkedin.btn,.btn-flickr.btn-lg,.btn-group-lg>.btn-flickr.btn,.btn-tumblr.btn-lg,.btn-group-lg>.btn-tumblr.btn,.btn-xing.btn-lg,.btn-group-lg>.btn-xing.btn,.btn-github.btn-lg,.btn-group-lg>.btn-github.btn,.btn-html5.btn-lg,.btn-group-lg>.btn-html5.btn,.btn-openid.btn-lg,.btn-group-lg>.btn-openid.btn,.btn-stack-overflow.btn-lg,.btn-group-lg>.btn-stack-overflow.btn,.btn-youtube.btn-lg,.btn-group-lg>.btn-youtube.btn,.btn-css3.btn-lg,.btn-group-lg>.btn-css3.btn,.btn-dribbble.btn-lg,.btn-group-lg>.btn-dribbble.btn,.btn-google-plus.btn-lg,.btn-group-lg>.btn-google-plus.btn,.btn-instagram.btn-lg,.btn-group-lg>.btn-instagram.btn,.btn-pinterest.btn-lg,.btn-group-lg>.btn-pinterest.btn,.btn-vk.btn-lg,.btn-group-lg>.btn-vk.btn,.btn-yahoo.btn-lg,.btn-group-lg>.btn-yahoo.btn,.btn-behance.btn-lg,.btn-group-lg>.btn-behance.btn,.btn-dropbox.btn-lg,.btn-group-lg>.btn-dropbox.btn,.btn-reddit.btn-lg,.btn-group-lg>.btn-reddit.btn,.btn-spotify.btn-lg,.btn-group-lg>.btn-spotify.btn,.btn-vine.btn-lg,.btn-group-lg>.btn-vine.btn,.btn-foursquare.btn-lg,.btn-group-lg>.btn-foursquare.btn,.btn-vimeo.btn-lg,.btn-group-lg>.btn-vimeo.btn{padding:.5rem 1rem;font-size:1.09375rem;line-height:1.5;border:0}.btn-facebook.btn-lg::before,.btn-group-lg>.btn-facebook.btn::before,.btn-twitter.btn-lg::before,.btn-group-lg>.btn-twitter.btn::before,.btn-linkedin.btn-lg::before,.btn-group-lg>.btn-linkedin.btn::before,.btn-flickr.btn-lg::before,.btn-group-lg>.btn-flickr.btn::before,.btn-tumblr.btn-lg::before,.btn-group-lg>.btn-tumblr.btn::before,.btn-xing.btn-lg::before,.btn-group-lg>.btn-xing.btn::before,.btn-github.btn-lg::before,.btn-group-lg>.btn-github.btn::before,.btn-html5.btn-lg::before,.btn-group-lg>.btn-html5.btn::before,.btn-openid.btn-lg::before,.btn-group-lg>.btn-openid.btn::before,.btn-stack-overflow.btn-lg::before,.btn-group-lg>.btn-stack-overflow.btn::before,.btn-youtube.btn-lg::before,.btn-group-lg>.btn-youtube.btn::before,.btn-css3.btn-lg::before,.btn-group-lg>.btn-css3.btn::before,.btn-dribbble.btn-lg::before,.btn-group-lg>.btn-dribbble.btn::before,.btn-google-plus.btn-lg::before,.btn-group-lg>.btn-google-plus.btn::before,.btn-instagram.btn-lg::before,.btn-group-lg>.btn-instagram.btn::before,.btn-pinterest.btn-lg::before,.btn-group-lg>.btn-pinterest.btn::before,.btn-vk.btn-lg::before,.btn-group-lg>.btn-vk.btn::before,.btn-yahoo.btn-lg::before,.btn-group-lg>.btn-yahoo.btn::before,.btn-behance.btn-lg::before,.btn-group-lg>.btn-behance.btn::before,.btn-dropbox.btn-lg::before,.btn-group-lg>.btn-dropbox.btn::before,.btn-reddit.btn-lg::before,.btn-group-lg>.btn-reddit.btn::before,.btn-spotify.btn-lg::before,.btn-group-lg>.btn-spotify.btn::before,.btn-vine.btn-lg::before,.btn-group-lg>.btn-vine.btn::before,.btn-foursquare.btn-lg::before,.btn-group-lg>.btn-foursquare.btn::before,.btn-vimeo.btn-lg::before,.btn-group-lg>.btn-vimeo.btn::before{width:2.64062rem;height:2.64062rem;padding:.5rem 0;font-size:1.09375rem;line-height:1.5}.btn-facebook.btn-lg span,.btn-group-lg>.btn-facebook.btn span,.btn-twitter.btn-lg span,.btn-group-lg>.btn-twitter.btn span,.btn-linkedin.btn-lg span,.btn-group-lg>.btn-linkedin.btn span,.btn-flickr.btn-lg span,.btn-group-lg>.btn-flickr.btn span,.btn-tumblr.btn-lg span,.btn-group-lg>.btn-tumblr.btn span,.btn-xing.btn-lg span,.btn-group-lg>.btn-xing.btn span,.btn-github.btn-lg span,.btn-group-lg>.btn-github.btn span,.btn-html5.btn-lg span,.btn-group-lg>.btn-html5.btn span,.btn-openid.btn-lg span,.btn-group-lg>.btn-openid.btn span,.btn-stack-overflow.btn-lg span,.btn-group-lg>.btn-stack-overflow.btn span,.btn-youtube.btn-lg span,.btn-group-lg>.btn-youtube.btn span,.btn-css3.btn-lg span,.btn-group-lg>.btn-css3.btn span,.btn-dribbble.btn-lg span,.btn-group-lg>.btn-dribbble.btn span,.btn-google-plus.btn-lg span,.btn-group-lg>.btn-google-plus.btn span,.btn-instagram.btn-lg span,.btn-group-lg>.btn-instagram.btn span,.btn-pinterest.btn-lg span,.btn-group-lg>.btn-pinterest.btn span,.btn-vk.btn-lg span,.btn-group-lg>.btn-vk.btn span,.btn-yahoo.btn-lg span,.btn-group-lg>.btn-yahoo.btn span,.btn-behance.btn-lg span,.btn-group-lg>.btn-behance.btn span,.btn-dropbox.btn-lg span,.btn-group-lg>.btn-dropbox.btn span,.btn-reddit.btn-lg span,.btn-group-lg>.btn-reddit.btn span,.btn-spotify.btn-lg span,.btn-group-lg>.btn-spotify.btn span,.btn-vine.btn-lg span,.btn-group-lg>.btn-vine.btn span,.btn-foursquare.btn-lg span,.btn-group-lg>.btn-foursquare.btn span,.btn-vimeo.btn-lg span,.btn-group-lg>.btn-vimeo.btn span{margin-left:2.64062rem}.btn-facebook.btn-lg.icon,.btn-group-lg>.btn-facebook.icon.btn,.btn-twitter.btn-lg.icon,.btn-group-lg>.btn-twitter.icon.btn,.btn-linkedin.btn-lg.icon,.btn-group-lg>.btn-linkedin.icon.btn,.btn-flickr.btn-lg.icon,.btn-group-lg>.btn-flickr.icon.btn,.btn-tumblr.btn-lg.icon,.btn-group-lg>.btn-tumblr.icon.btn,.btn-xing.btn-lg.icon,.btn-group-lg>.btn-xing.icon.btn,.btn-github.btn-lg.icon,.btn-group-lg>.btn-github.icon.btn,.btn-html5.btn-lg.icon,.btn-group-lg>.btn-html5.icon.btn,.btn-openid.btn-lg.icon,.btn-group-lg>.btn-openid.icon.btn,.btn-stack-overflow.btn-lg.icon,.btn-group-lg>.btn-stack-overflow.icon.btn,.btn-youtube.btn-lg.icon,.btn-group-lg>.btn-youtube.icon.btn,.btn-css3.btn-lg.icon,.btn-group-lg>.btn-css3.icon.btn,.btn-dribbble.btn-lg.icon,.btn-group-lg>.btn-dribbble.icon.btn,.btn-google-plus.btn-lg.icon,.btn-group-lg>.btn-google-plus.icon.btn,.btn-instagram.btn-lg.icon,.btn-group-lg>.btn-instagram.icon.btn,.btn-pinterest.btn-lg.icon,.btn-group-lg>.btn-pinterest.icon.btn,.btn-vk.btn-lg.icon,.btn-group-lg>.btn-vk.icon.btn,.btn-yahoo.btn-lg.icon,.btn-group-lg>.btn-yahoo.icon.btn,.btn-behance.btn-lg.icon,.btn-group-lg>.btn-behance.icon.btn,.btn-dropbox.btn-lg.icon,.btn-group-lg>.btn-dropbox.icon.btn,.btn-reddit.btn-lg.icon,.btn-group-lg>.btn-reddit.icon.btn,.btn-spotify.btn-lg.icon,.btn-group-lg>.btn-spotify.icon.btn,.btn-vine.btn-lg.icon,.btn-group-lg>.btn-vine.icon.btn,.btn-foursquare.btn-lg.icon,.btn-group-lg>.btn-foursquare.icon.btn,.btn-vimeo.btn-lg.icon,.btn-group-lg>.btn-vimeo.icon.btn{width:2.64062rem;height:2.64062rem}.btn-facebook.btn-sm,.btn-group-sm>.btn-facebook.btn,.btn-twitter.btn-sm,.btn-group-sm>.btn-twitter.btn,.btn-linkedin.btn-sm,.btn-group-sm>.btn-linkedin.btn,.btn-flickr.btn-sm,.btn-group-sm>.btn-flickr.btn,.btn-tumblr.btn-sm,.btn-group-sm>.btn-tumblr.btn,.btn-xing.btn-sm,.btn-group-sm>.btn-xing.btn,.btn-github.btn-sm,.btn-group-sm>.btn-github.btn,.btn-html5.btn-sm,.btn-group-sm>.btn-html5.btn,.btn-openid.btn-sm,.btn-group-sm>.btn-openid.btn,.btn-stack-overflow.btn-sm,.btn-group-sm>.btn-stack-overflow.btn,.btn-youtube.btn-sm,.btn-group-sm>.btn-youtube.btn,.btn-css3.btn-sm,.btn-group-sm>.btn-css3.btn,.btn-dribbble.btn-sm,.btn-group-sm>.btn-dribbble.btn,.btn-google-plus.btn-sm,.btn-group-sm>.btn-google-plus.btn,.btn-instagram.btn-sm,.btn-group-sm>.btn-instagram.btn,.btn-pinterest.btn-sm,.btn-group-sm>.btn-pinterest.btn,.btn-vk.btn-sm,.btn-group-sm>.btn-vk.btn,.btn-yahoo.btn-sm,.btn-group-sm>.btn-yahoo.btn,.btn-behance.btn-sm,.btn-group-sm>.btn-behance.btn,.btn-dropbox.btn-sm,.btn-group-sm>.btn-dropbox.btn,.btn-reddit.btn-sm,.btn-group-sm>.btn-reddit.btn,.btn-spotify.btn-sm,.btn-group-sm>.btn-spotify.btn,.btn-vine.btn-sm,.btn-group-sm>.btn-vine.btn,.btn-foursquare.btn-sm,.btn-group-sm>.btn-foursquare.btn,.btn-vimeo.btn-sm,.btn-group-sm>.btn-vimeo.btn{padding:.25rem .5rem;font-size:.76562rem;line-height:1.5;border:0}.btn-facebook.btn-sm::before,.btn-group-sm>.btn-facebook.btn::before,.btn-twitter.btn-sm::before,.btn-group-sm>.btn-twitter.btn::before,.btn-linkedin.btn-sm::before,.btn-group-sm>.btn-linkedin.btn::before,.btn-flickr.btn-sm::before,.btn-group-sm>.btn-flickr.btn::before,.btn-tumblr.btn-sm::before,.btn-group-sm>.btn-tumblr.btn::before,.btn-xing.btn-sm::before,.btn-group-sm>.btn-xing.btn::before,.btn-github.btn-sm::before,.btn-group-sm>.btn-github.btn::before,.btn-html5.btn-sm::before,.btn-group-sm>.btn-html5.btn::before,.btn-openid.btn-sm::before,.btn-group-sm>.btn-openid.btn::before,.btn-stack-overflow.btn-sm::before,.btn-group-sm>.btn-stack-overflow.btn::before,.btn-youtube.btn-sm::before,.btn-group-sm>.btn-youtube.btn::before,.btn-css3.btn-sm::before,.btn-group-sm>.btn-css3.btn::before,.btn-dribbble.btn-sm::before,.btn-group-sm>.btn-dribbble.btn::before,.btn-google-plus.btn-sm::before,.btn-group-sm>.btn-google-plus.btn::before,.btn-instagram.btn-sm::before,.btn-group-sm>.btn-instagram.btn::before,.btn-pinterest.btn-sm::before,.btn-group-sm>.btn-pinterest.btn::before,.btn-vk.btn-sm::before,.btn-group-sm>.btn-vk.btn::before,.btn-yahoo.btn-sm::before,.btn-group-sm>.btn-yahoo.btn::before,.btn-behance.btn-sm::before,.btn-group-sm>.btn-behance.btn::before,.btn-dropbox.btn-sm::before,.btn-group-sm>.btn-dropbox.btn::before,.btn-reddit.btn-sm::before,.btn-group-sm>.btn-reddit.btn::before,.btn-spotify.btn-sm::before,.btn-group-sm>.btn-spotify.btn::before,.btn-vine.btn-sm::before,.btn-group-sm>.btn-vine.btn::before,.btn-foursquare.btn-sm::before,.btn-group-sm>.btn-foursquare.btn::before,.btn-vimeo.btn-sm::before,.btn-group-sm>.btn-vimeo.btn::before{width:1.64844rem;height:1.64844rem;padding:.25rem 0;font-size:.76562rem;line-height:1.5}.btn-facebook.btn-sm span,.btn-group-sm>.btn-facebook.btn span,.btn-twitter.btn-sm span,.btn-group-sm>.btn-twitter.btn span,.btn-linkedin.btn-sm span,.btn-group-sm>.btn-linkedin.btn span,.btn-flickr.btn-sm span,.btn-group-sm>.btn-flickr.btn span,.btn-tumblr.btn-sm span,.btn-group-sm>.btn-tumblr.btn span,.btn-xing.btn-sm span,.btn-group-sm>.btn-xing.btn span,.btn-github.btn-sm span,.btn-group-sm>.btn-github.btn span,.btn-html5.btn-sm span,.btn-group-sm>.btn-html5.btn span,.btn-openid.btn-sm span,.btn-group-sm>.btn-openid.btn span,.btn-stack-overflow.btn-sm span,.btn-group-sm>.btn-stack-overflow.btn span,.btn-youtube.btn-sm span,.btn-group-sm>.btn-youtube.btn span,.btn-css3.btn-sm span,.btn-group-sm>.btn-css3.btn span,.btn-dribbble.btn-sm span,.btn-group-sm>.btn-dribbble.btn span,.btn-google-plus.btn-sm span,.btn-group-sm>.btn-google-plus.btn span,.btn-instagram.btn-sm span,.btn-group-sm>.btn-instagram.btn span,.btn-pinterest.btn-sm span,.btn-group-sm>.btn-pinterest.btn span,.btn-vk.btn-sm span,.btn-group-sm>.btn-vk.btn span,.btn-yahoo.btn-sm span,.btn-group-sm>.btn-yahoo.btn span,.btn-behance.btn-sm span,.btn-group-sm>.btn-behance.btn span,.btn-dropbox.btn-sm span,.btn-group-sm>.btn-dropbox.btn span,.btn-reddit.btn-sm span,.btn-group-sm>.btn-reddit.btn span,.btn-spotify.btn-sm span,.btn-group-sm>.btn-spotify.btn span,.btn-vine.btn-sm span,.btn-group-sm>.btn-vine.btn span,.btn-foursquare.btn-sm span,.btn-group-sm>.btn-foursquare.btn span,.btn-vimeo.btn-sm span,.btn-group-sm>.btn-vimeo.btn span{margin-left:1.64844rem}.btn-facebook.btn-sm.icon,.btn-group-sm>.btn-facebook.icon.btn,.btn-twitter.btn-sm.icon,.btn-group-sm>.btn-twitter.icon.btn,.btn-linkedin.btn-sm.icon,.btn-group-sm>.btn-linkedin.icon.btn,.btn-flickr.btn-sm.icon,.btn-group-sm>.btn-flickr.icon.btn,.btn-tumblr.btn-sm.icon,.btn-group-sm>.btn-tumblr.icon.btn,.btn-xing.btn-sm.icon,.btn-group-sm>.btn-xing.icon.btn,.btn-github.btn-sm.icon,.btn-group-sm>.btn-github.icon.btn,.btn-html5.btn-sm.icon,.btn-group-sm>.btn-html5.icon.btn,.btn-openid.btn-sm.icon,.btn-group-sm>.btn-openid.icon.btn,.btn-stack-overflow.btn-sm.icon,.btn-group-sm>.btn-stack-overflow.icon.btn,.btn-youtube.btn-sm.icon,.btn-group-sm>.btn-youtube.icon.btn,.btn-css3.btn-sm.icon,.btn-group-sm>.btn-css3.icon.btn,.btn-dribbble.btn-sm.icon,.btn-group-sm>.btn-dribbble.icon.btn,.btn-google-plus.btn-sm.icon,.btn-group-sm>.btn-google-plus.icon.btn,.btn-instagram.btn-sm.icon,.btn-group-sm>.btn-instagram.icon.btn,.btn-pinterest.btn-sm.icon,.btn-group-sm>.btn-pinterest.icon.btn,.btn-vk.btn-sm.icon,.btn-group-sm>.btn-vk.icon.btn,.btn-yahoo.btn-sm.icon,.btn-group-sm>.btn-yahoo.icon.btn,.btn-behance.btn-sm.icon,.btn-group-sm>.btn-behance.icon.btn,.btn-dropbox.btn-sm.icon,.btn-group-sm>.btn-dropbox.icon.btn,.btn-reddit.btn-sm.icon,.btn-group-sm>.btn-reddit.icon.btn,.btn-spotify.btn-sm.icon,.btn-group-sm>.btn-spotify.icon.btn,.btn-vine.btn-sm.icon,.btn-group-sm>.btn-vine.icon.btn,.btn-foursquare.btn-sm.icon,.btn-group-sm>.btn-foursquare.icon.btn,.btn-vimeo.btn-sm.icon,.btn-group-sm>.btn-vimeo.icon.btn{width:1.64844rem;height:1.64844rem}.btn-facebook{background:#3b5998}.btn-facebook::before{content:\\\"\\\\f09a\\\";background:#344e86}.btn-facebook:hover{background:#344e86}.btn-facebook:hover::before{background:#2d4373}.btn-twitter{background:#00aced}.btn-twitter::before{content:\\\"\\\\f099\\\";background:#0099d4}.btn-twitter:hover{background:#0099d4}.btn-twitter:hover::before{background:#0087ba}.btn-linkedin{background:#4875b4}.btn-linkedin::before{content:\\\"\\\\f0e1\\\";background:#4169a2}.btn-linkedin:hover{background:#4169a2}.btn-linkedin:hover::before{background:#395d90}.btn-flickr{background:#ff0084}.btn-flickr::before{content:\\\"\\\\f16e\\\";background:#e60077}.btn-flickr:hover{background:#e60077}.btn-flickr:hover::before{background:#cc006a}.btn-tumblr{background:#32506d}.btn-tumblr::before{content:\\\"\\\\f173\\\";background:#2a435c}.btn-tumblr:hover{background:#2a435c}.btn-tumblr:hover::before{background:#22364a}.btn-xing{background:#026466}.btn-xing::before{content:\\\"\\\\f168\\\";background:#024b4d}.btn-xing:hover{background:#024b4d}.btn-xing:hover::before{background:#013334}.btn-github{background:#4183c4}.btn-github::before{content:\\\"\\\\f09b\\\";background:#3876b4}.btn-github:hover{background:#3876b4}.btn-github:hover::before{background:#3269a0}.btn-html5{background:#e34f26}.btn-html5::before{content:\\\"\\\\f13b\\\";background:#d4431b}.btn-html5:hover{background:#d4431b}.btn-html5:hover::before{background:#be3c18}.btn-openid{background:#f78c40}.btn-openid::before{content:\\\"\\\\f19b\\\";background:#f67d28}.btn-openid:hover{background:#f67d28}.btn-openid:hover::before{background:#f56f0f}.btn-stack-overflow{background:#fe7a15}.btn-stack-overflow::before{content:\\\"\\\\f16c\\\";background:#f86c01}.btn-stack-overflow:hover{background:#f86c01}.btn-stack-overflow:hover::before{background:#df6101}.btn-css3{background:#0170ba}.btn-css3::before{content:\\\"\\\\f13c\\\";background:#0161a1}.btn-css3:hover{background:#0161a1}.btn-css3:hover::before{background:#015187}.btn-youtube{background:#b00}.btn-youtube::before{content:\\\"\\\\f167\\\";background:#a20000}.btn-youtube:hover{background:#a20000}.btn-youtube:hover::before{background:#800}.btn-dribbble{background:#ea4c89}.btn-dribbble::before{content:\\\"\\\\f17d\\\";background:#e7357a}.btn-dribbble:hover{background:#e7357a}.btn-dribbble:hover::before{background:#e51e6b}.btn-google-plus{background:#d34836}.btn-google-plus::before{content:\\\"\\\\f0d5\\\";background:#c43d2b}.btn-google-plus:hover{background:#c43d2b}.btn-google-plus:hover::before{background:#b03626}.btn-instagram{background:#517fa4}.btn-instagram::before{content:\\\"\\\\f16d\\\";background:#497293}.btn-instagram:hover{background:#497293}.btn-instagram:hover::before{background:#406582}.btn-pinterest{background:#cb2027}.btn-pinterest::before{content:\\\"\\\\f0d2\\\";background:#b51d23}.btn-pinterest:hover{background:#b51d23}.btn-pinterest:hover::before{background:#9f191f}.btn-vk{background:#45668e}.btn-vk::before{content:\\\"\\\\f189\\\";background:#3d5a7d}.btn-vk:hover{background:#3d5a7d}.btn-vk:hover::before{background:#344d6c}.btn-yahoo{background:#400191}.btn-yahoo::before{content:\\\"\\\\f19e\\\";background:#350178}.btn-yahoo:hover{background:#350178}.btn-yahoo:hover::before{background:#2a015e}.btn-behance{background:#1769ff}.btn-behance::before{content:\\\"\\\\f1b4\\\";background:#0059fd}.btn-behance:hover{background:#0059fd}.btn-behance:hover::before{background:#0050e3}.btn-dropbox{background:#007ee5}.btn-dropbox::before{content:\\\"\\\\f16b\\\";background:#0070cc}.btn-dropbox:hover{background:#0070cc}.btn-dropbox:hover::before{background:#0062b2}.btn-reddit{background:#ff4500}.btn-reddit::before{content:\\\"\\\\f1a1\\\";background:#e63e00}.btn-reddit:hover{background:#e63e00}.btn-reddit:hover::before{background:#cc3700}.btn-spotify{background:#7ab800}.btn-spotify::before{content:\\\"\\\\f1bc\\\";background:#699f00}.btn-spotify:hover{background:#699f00}.btn-spotify:hover::before{background:#588500}.btn-vine{background:#00bf8f}.btn-vine::before{content:\\\"\\\\f1ca\\\";background:#00a67c}.btn-vine:hover{background:#00a67c}.btn-vine:hover::before{background:#008c69}.btn-foursquare{background:#1073af}.btn-foursquare::before{content:\\\"\\\\f180\\\";background:#0e6498}.btn-foursquare:hover{background:#0e6498}.btn-foursquare:hover::before{background:#0c5480}.btn-vimeo{background:#aad450}.btn-vimeo::before{content:\\\"\\\\f194\\\";background:#a0cf3c}.btn-vimeo:hover{background:#a0cf3c}.btn-vimeo:hover::before{background:#93c130}.callout{position:relative;padding:0 1rem;margin:1rem 0;border:0 solid #a4b7c1;border-left-width:.25rem}.callout .chart-wrapper{position:absolute;top:10px;left:50%;float:right;width:50%}.callout-bordered{border:1px solid #a4b7c1;border-left-width:.25rem}.callout code{border-radius:.25rem}.callout h4{margin-top:0;margin-bottom:.25rem}.callout p:last-child{margin-bottom:0}.callout+.callout{margin-top:-0.25rem}.callout-default{border-left-color:#536c79}.callout-default h4{color:#536c79}.callout-primary{border-left-color:#039}.callout-primary h4{color:#039}.callout-secondary{border-left-color:#a4b7c1}.callout-secondary h4{color:#a4b7c1}.callout-success{border-left-color:#4dbd74}.callout-success h4{color:#4dbd74}.callout-info{border-left-color:#63c2de}.callout-info h4{color:#63c2de}.callout-warning{border-left-color:#fc0}.callout-warning h4{color:#fc0}.callout-danger{border-left-color:#f86c6b}.callout-danger h4{color:#f86c6b}.callout-light{border-left-color:#f0f3f5}.callout-light h4{color:#f0f3f5}.callout-dark{border-left-color:#29363d}.callout-dark h4{color:#29363d}.card{margin-bottom:1.5rem}.card.bg-primary{border-color:#001e59}.card.bg-primary .card-header{background-color:#002e8a;border-color:#001e59}.card.bg-secondary{border-color:#7e99a7}.card.bg-secondary .card-header{background-color:#9bb0bb;border-color:#7e99a7}.card.bg-success{border-color:#379457}.card.bg-success .card-header{background-color:#44b76c;border-color:#379457}.card.bg-info{border-color:#2eadd3}.card.bg-info .card-header{background-color:#56bddb;border-color:#2eadd3}.card.bg-warning{border-color:#bf9900}.card.bg-warning .card-header{background-color:#f0c000;border-color:#bf9900}.card.bg-danger{border-color:#f5302e}.card.bg-danger .card-header{background-color:#f75d5c;border-color:#f5302e}.card.bg-light{border-color:#cad4dc}.card.bg-light .card-header{background-color:#e7ecef;border-color:#cad4dc}.card.bg-dark{border-color:#0f1417}.card.bg-dark .card-header{background-color:#232e34;border-color:#0f1417}.text-white .text-muted{color:rgba(255,255,255,0.6) !important}.card-header .icon-bg{display:inline-body;padding:.75rem 1.25rem !important;margin-top:-.75rem;margin-right:1.25rem;margin-bottom:-.75rem;margin-left:-1.25rem;line-height:inherit;color:#151b1e;vertical-align:bottom;background:rgba(0,0,0,0);border-right:1px solid #c2cfd6}.card-header .nav.nav-tabs{margin-top:-.75rem;margin-bottom:-.75rem;border-bottom:0}.card-header .nav.nav-tabs .nav-item{border-top:0}.card-header .nav.nav-tabs .nav-link,.card-header .nav.nav-tabs .navbar .dropdown-toggle,.navbar .card-header .nav.nav-tabs .dropdown-toggle{padding:.75rem .625rem;color:#536c79;border-top:0}.card-header .nav.nav-tabs .nav-link.active,.card-header .nav.nav-tabs .navbar .active.dropdown-toggle,.navbar .card-header .nav.nav-tabs .active.dropdown-toggle{color:#151b1e;background:#fff}.card-header.card-header-inverse{color:#fff}.card-header .btn{margin-top:-.375rem}.card-header .btn-sm,.card-header .btn-group-sm>.btn{margin-top:-.25rem}.card-header .btn-lg,.card-header .btn-group-lg>.btn{margin-top:-.5rem}.card-footer ul{display:table;width:100%;padding:0;margin:0;table-layout:fixed}.card-footer ul li{display:table-cell;padding:0 1.25rem;text-align:center}[class*=\\\"card-outline-\\\"] .card-body,[class*=\\\"card-outline-\\\"] .card-block{background:#fff !important}[class*=\\\"card-outline-\\\"].card-outline-top{border-top-width:2px;border-right-color:#a4b7c1;border-bottom-color:#a4b7c1;border-left-color:#a4b7c1}.card-accent-primary{border-top-width:2px;border-top-color:#039}.card-accent-secondary{border-top-width:2px;border-top-color:#a4b7c1}.card-accent-success{border-top-width:2px;border-top-color:#4dbd74}.card-accent-info{border-top-width:2px;border-top-color:#63c2de}.card-accent-warning{border-top-width:2px;border-top-color:#fc0}.card-accent-danger{border-top-width:2px;border-top-color:#f86c6b}.card-accent-light{border-top-width:2px;border-top-color:#f0f3f5}.card-accent-dark{border-top-width:2px;border-top-color:#29363d}.card-header>i{margin-right:.5rem}.card-header .card-actions{position:absolute;top:0;right:0}.card-header .card-actions a,.card-header .card-actions button{display:block;float:left;width:50px;padding:.75rem 0;margin:0 !important;color:#151b1e;text-align:center;background:transparent;border:0;border-left:1px solid #a4b7c1;box-shadow:0}.card-header .card-actions a:hover,.card-header .card-actions button:hover{text-decoration:none}.card-header .card-actions a [class^=\\\"icon-\\\"],.card-header .card-actions a [class*=\\\" icon-\\\"],.card-header .card-actions button [class^=\\\"icon-\\\"],.card-header .card-actions button [class*=\\\" icon-\\\"]{display:inline-body;vertical-align:middle}.card-header .card-actions a i,.card-header .card-actions button i{display:inline-body;transition:.4s}.card-header .card-actions a .r180,.card-header .card-actions button .r180{transform:rotate(180deg)}.card-header .card-actions .input-group{width:230px;margin:6px}.card-header .card-actions .input-group .input-group-addon{background:#fff}.card-header .card-actions .input-group input{border-left:0}.card-full{margin-top:-1rem;margin-right:-15px;margin-left:-15px;border:0;border-bottom:1px solid #a4b7c1}@media (min-width: 576px){.card-columns.cols-2{column-count:2}}.card.drag,.card .drag{cursor:move}.card-placeholder{background:rgba(0,0,0,0.025);border:1px dashed #a4b7c1}.chart-wrapper canvas{width:100% !important}base-chart.chart{display:block !important}.dropdown-item{position:relative;padding:10px 20px;border-bottom:1px solid #c2cfd6}.dropdown-item:last-child{border-bottom:0}.dropdown-item i{display:inline-block;width:20px;margin-right:10px;margin-left:-10px;color:#c2cfd6;text-align:center}.dropdown-item .badge{position:absolute;right:10px;margin-top:2px}.dropdown-header{padding:8px 20px;background:#f0f3f5;border-bottom:1px solid #c2cfd6}.dropdown-header .btn{margin-top:-7px;color:#536c79}.dropdown-header .btn:hover{color:#151b1e}.dropdown-header .btn.pull-right{margin-right:-20px}.dropdown-menu-lg{width:250px}.app-header .navbar-nav .dropdown-menu{position:absolute}.app-header .navbar-nav .dropdown-menu-right{right:0;left:auto}.app-header .navbar-nav .dropdown-menu-left{right:auto;left:0}.app-footer{display:flex;flex-wrap:wrap;align-items:center;padding:0 1rem;color:#151b1e;background:#f0f3f5;border-top:1px solid #a4b7c1}.row.row-equal{padding-right:7.5px;padding-left:7.5px;margin-right:-15px;margin-left:-15px}.row.row-equal [class*=\\\"col-\\\"]{padding-right:7.5px;padding-left:7.5px}.main .container-fluid,.main .container-sm,.main .container-md,.main .container-lg,.main .container-xl{padding:0 30px}.input-group-addon,.input-group-btn{min-width:40px;white-space:nowrap;vertical-align:middle}#loading-bar,#loading-bar-spinner{-webkit-pointer-events:none;pointer-events:none;-moz-transition:350ms linear all;-o-transition:350ms linear all;-webkit-transition:350ms linear all;transition:350ms linear all}#loading-bar.ng-enter,#loading-bar.ng-leave.ng-leave-active,#loading-bar-spinner.ng-enter,#loading-bar-spinner.ng-leave.ng-leave-active{opacity:0}#loading-bar.ng-enter.ng-enter-active,#loading-bar.ng-leave,#loading-bar-spinner.ng-enter.ng-enter-active,#loading-bar-spinner.ng-leave{opacity:1}#loading-bar .bar{position:fixed;top:0;left:0;z-index:20002;width:100%;height:2px;background:#039;border-top-right-radius:1px;border-bottom-right-radius:1px;-moz-transition:width 350ms;-o-transition:width 350ms;-webkit-transition:width 350ms;transition:width 350ms}#loading-bar .peg{position:absolute;top:0;right:0;width:70px;height:2px;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;-moz-box-shadow:#29d 1px 0 6px 1px;-ms-box-shadow:#29d 1px 0 6px 1px;-webkit-box-shadow:#29d 1px 0 6px 1px;box-shadow:#29d 1px 0 6px 1px;opacity:.45}#loading-bar-spinner{position:fixed;top:10px;left:10px;z-index:10002;display:block}#loading-bar-spinner .spinner-icon{width:14px;height:14px;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-moz-animation:loading-bar-spinner 400ms linear infinite;-ms-animation:loading-bar-spinner 400ms linear infinite;-o-animation:loading-bar-spinner 400ms linear infinite;-webkit-animation:loading-bar-spinner 400ms linear infinite;animation:loading-bar-spinner 400ms linear infinite}@-webkit-keyframes loading-bar-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes loading-bar-spinner{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes loading-bar-spinner{0%{-o-transform:rotate(0deg);transform:rotate(0deg)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes loading-bar-spinner{0%{-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-bar-spinner{0%{transform:rotate(0deg);transform:rotate(0deg)}100%{transform:rotate(360deg);transform:rotate(360deg)}}.pace{-webkit-pointer-events:none;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{position:fixed;top:0;right:100%;z-index:2000;width:100%;height:2px;background:#039}.modal-primary .modal-content{border-color:#039}.modal-primary .modal-header{color:#fff;background-color:#039}.modal-secondary .modal-content{border-color:#a4b7c1}.modal-secondary .modal-header{color:#fff;background-color:#a4b7c1}.modal-success .modal-content{border-color:#4dbd74}.modal-success .modal-header{color:#fff;background-color:#4dbd74}.modal-info .modal-content{border-color:#63c2de}.modal-info .modal-header{color:#fff;background-color:#63c2de}.modal-warning .modal-content{border-color:#fc0}.modal-warning .modal-header{color:#fff;background-color:#fc0}.modal-danger .modal-content{border-color:#f86c6b}.modal-danger .modal-header{color:#fff;background-color:#f86c6b}.modal-light .modal-content{border-color:#f0f3f5}.modal-light .modal-header{color:#fff;background-color:#f0f3f5}.modal-dark .modal-content{border-color:#29363d}.modal-dark .modal-header{color:#fff;background-color:#29363d}.nav-tabs .nav-link,.nav-tabs .navbar .dropdown-toggle,.navbar .nav-tabs .dropdown-toggle{color:#536c79}.nav-tabs .nav-link.active,.nav-tabs .navbar .active.dropdown-toggle,.navbar .nav-tabs .active.dropdown-toggle{color:#29363d;background:#fff;border-color:#a4b7c1;border-bottom-color:#fff}.nav-tabs .nav-link.active:focus,.nav-tabs .navbar .active.dropdown-toggle:focus,.navbar .nav-tabs .active.dropdown-toggle:focus{background:#fff;border-color:#a4b7c1;border-bottom-color:#fff}.tab-content{margin-top:-1px;background:#fff;border:1px solid #a4b7c1}.tab-content .tab-pane{padding:1rem}.card-block .tab-content{margin-top:0;border:0}.app-header.navbar{position:relative;flex-direction:row;height:55px;padding:0;margin:0;background-color:#fff;border-bottom:1px solid #a4b7c1}.app-header.navbar .navbar-brand{display:inline-block;width:155px;height:55px;padding:.5rem 1rem;margin-right:0;background-color:#fff;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-repeat:no-repeat;background-position:center center;background-size:150px auto;border-bottom:1px solid #a4b7c1}.app-header.navbar .navbar-toggler{min-width:50px;padding:.25rem 0}.app-header.navbar .navbar-toggler:hover .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%2329363d' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.app-header.navbar .navbar-toggler-icon{height:23px;background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%23536c79' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.app-header.navbar .navbar-nav{flex-direction:row;align-items:center}.app-header.navbar .nav-item{position:relative;min-width:50px;margin:0 !important;text-align:center}.app-header.navbar .nav-item button{margin:0 auto}.app-header.navbar .nav-item .nav-link,.app-header.navbar .nav-item .dropdown-toggle{padding-top:0;padding-bottom:0;background:0;border:0}.app-header.navbar .nav-item .nav-link .badge,.app-header.navbar .nav-item .dropdown-toggle .badge{position:absolute;top:50%;left:50%;margin-top:-16px;margin-left:0}.app-header.navbar .nav-item .nav-link>.img-avatar,.app-header.navbar .nav-item .dropdown-toggle>.img-avatar{height:35px;margin:0 10px}.app-header.navbar .dropdown-menu{padding-bottom:0;line-height:1.5}.app-header.navbar .dropdown-item{min-width:180px}.navbar-brand{color:#29363d}.navbar-brand:hover,.navbar-brand:focus{color:#29363d}.navbar-nav .nav-link,.navbar-nav .navbar .dropdown-toggle,.navbar .navbar-nav .dropdown-toggle{color:#536c79}.navbar-nav .nav-link:hover,.navbar-nav .navbar .dropdown-toggle:hover,.navbar .navbar-nav .dropdown-toggle:hover,.navbar-nav .nav-link:focus,.navbar-nav .navbar .dropdown-toggle:focus,.navbar .navbar-nav .dropdown-toggle:focus{color:#29363d}.navbar-nav .open>.nav-link,.navbar-nav .navbar .open>.dropdown-toggle,.navbar .navbar-nav .open>.dropdown-toggle,.navbar-nav .open>.nav-link:hover,.navbar-nav .navbar .open>.dropdown-toggle:hover,.navbar .navbar-nav .open>.dropdown-toggle:hover,.navbar-nav .open>.nav-link:focus,.navbar-nav .navbar .open>.dropdown-toggle:focus,.navbar .navbar-nav .open>.dropdown-toggle:focus,.navbar-nav .active>.nav-link,.navbar-nav .navbar .active>.dropdown-toggle,.navbar .navbar-nav .active>.dropdown-toggle,.navbar-nav .active>.nav-link:hover,.navbar-nav .navbar .active>.dropdown-toggle:hover,.navbar .navbar-nav .active>.dropdown-toggle:hover,.navbar-nav .active>.nav-link:focus,.navbar-nav .navbar .active>.dropdown-toggle:focus,.navbar .navbar-nav .active>.dropdown-toggle:focus,.navbar-nav .nav-link.open,.navbar-nav .navbar .open.dropdown-toggle,.navbar .navbar-nav .open.dropdown-toggle,.navbar-nav .nav-link.open:hover,.navbar-nav .navbar .open.dropdown-toggle:hover,.navbar .navbar-nav .open.dropdown-toggle:hover,.navbar-nav .nav-link.open:focus,.navbar-nav .navbar .open.dropdown-toggle:focus,.navbar .navbar-nav .open.dropdown-toggle:focus,.navbar-nav .nav-link.active,.navbar-nav .navbar .active.dropdown-toggle,.navbar .navbar-nav .active.dropdown-toggle,.navbar-nav .nav-link.active:hover,.navbar-nav .navbar .active.dropdown-toggle:hover,.navbar .navbar-nav .active.dropdown-toggle:hover,.navbar-nav .nav-link.active:focus,.navbar-nav .navbar .active.dropdown-toggle:focus,.navbar .navbar-nav .active.dropdown-toggle:focus{color:#29363d}.navbar-divider{background-color:rgba(0,0,0,0.075)}@media (min-width: 992px){.brand-minimized .app-header.navbar .navbar-brand{width:50px;background-color:#fff;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-size:24px;border-bottom:1px solid #a4b7c1}}.progress-xs{height:4px}.progress-sm{height:8px}.progress-white{background-color:rgba(255,255,255,0.2) !important}.progress-white .progress-bar{background-color:#fff}.sidebar{display:flex;flex-direction:column;padding:0;color:#fff;background:#29363d}.sidebar .sidebar-close{position:absolute;right:0;display:none;padding:0 1rem;font-size:24px;font-weight:800;line-height:55px;color:#fff;background:0;border:0;opacity:.8}.sidebar .sidebar-close:hover{opacity:1}.sidebar .sidebar-header{flex:0 0 auto;padding:.75rem 1rem;text-align:center;background:rgba(0,0,0,0.2)}.sidebar .sidebar-form .form-control{color:#fff;background:#151b1f;border:0}.sidebar .sidebar-form .form-control::placeholder{color:rgba(255,255,255,0.7)}.sidebar .sidebar-nav{position:relative;flex:1;overflow-x:hidden;overflow-y:auto;-ms-overflow-style:-ms-autohiding-scrollbar;width:200px}.sidebar .sidebar-nav::-webkit-scrollbar{position:absolute;width:10px;margin-left:-10px;-webkit-appearance:none}.sidebar .sidebar-nav::-webkit-scrollbar-track{background-color:#33444c;border-right:1px solid #1f292e;border-left:1px solid #1f292e}.sidebar .sidebar-nav::-webkit-scrollbar-thumb{height:50px;background-color:#151b1f;background-clip:content-box;border-color:transparent;border-style:solid;border-width:1px 2px}.sidebar .nav{width:200px;flex-direction:column;min-height:100%}.sidebar .nav-title{padding:.75rem 1rem;font-size:11px;font-weight:600;color:#c2cfd6;text-transform:uppercase}.sidebar .nav-divider,.sidebar .divider{height:10px}.sidebar .nav-item{position:relative;margin:0;transition:background .3s ease-in-out}.sidebar .nav-dropdown-items{max-height:0;padding:0;margin:0;overflow-y:hidden;transition:max-height .3s ease-in-out}.sidebar .nav-dropdown-items .nav-item{padding:0;list-style:none}.sidebar .nav-link,.sidebar .navbar .dropdown-toggle,.navbar .sidebar .dropdown-toggle{display:block;padding:.75rem 1rem;color:#fff;text-decoration:none;background:rgba(0,0,0,0)}.sidebar .nav-link i,.sidebar .navbar .dropdown-toggle i,.navbar .sidebar .dropdown-toggle i{display:inline-block;width:20px;margin:0 .5rem 0 0;font-size:14px;color:#536c79;text-align:center}.sidebar .nav-link .badge,.sidebar .navbar .dropdown-toggle .badge,.navbar .sidebar .dropdown-toggle .badge{float:right;margin-top:2px}.sidebar .nav-link.active,.sidebar .navbar .active.dropdown-toggle,.navbar .sidebar .active.dropdown-toggle{color:#fff;background:#33444c}.sidebar .nav-link.active i,.sidebar .navbar .active.dropdown-toggle i,.navbar .sidebar .active.dropdown-toggle i{color:#039}.sidebar .nav-link:hover,.sidebar .navbar .dropdown-toggle:hover,.navbar .sidebar .dropdown-toggle:hover{color:#fff;background:#039}.sidebar .nav-link:hover i,.sidebar .navbar .dropdown-toggle:hover i,.navbar .sidebar .dropdown-toggle:hover i{color:#fff}.sidebar .nav-link:hover.nav-dropdown-toggle::before,.sidebar .navbar .dropdown-toggle:hover.nav-dropdown-toggle::before,.navbar .sidebar .dropdown-toggle:hover.nav-dropdown-toggle::before{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\")}.sidebar .nav-link.nav-link-primary,.sidebar .navbar .nav-link-primary.dropdown-toggle,.navbar .sidebar .nav-link-primary.dropdown-toggle{background:#039}.sidebar .nav-link.nav-link-primary i,.sidebar .navbar .nav-link-primary.dropdown-toggle i,.navbar .sidebar .nav-link-primary.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-primary:hover,.sidebar .navbar .nav-link-primary.dropdown-toggle:hover,.navbar .sidebar .nav-link-primary.dropdown-toggle:hover{background:#002b80 !important}.sidebar .nav-link.nav-link-primary:hover i,.sidebar .navbar .nav-link-primary.dropdown-toggle:hover i,.navbar .sidebar .nav-link-primary.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-secondary,.sidebar .navbar .nav-link-secondary.dropdown-toggle,.navbar .sidebar .nav-link-secondary.dropdown-toggle{background:#a4b7c1}.sidebar .nav-link.nav-link-secondary i,.sidebar .navbar .nav-link-secondary.dropdown-toggle i,.navbar .sidebar .nav-link-secondary.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-secondary:hover,.sidebar .navbar .nav-link-secondary.dropdown-toggle:hover,.navbar .sidebar .nav-link-secondary.dropdown-toggle:hover{background:#95abb7 !important}.sidebar .nav-link.nav-link-secondary:hover i,.sidebar .navbar .nav-link-secondary.dropdown-toggle:hover i,.navbar .sidebar .nav-link-secondary.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-success,.sidebar .navbar .nav-link-success.dropdown-toggle,.navbar .sidebar .nav-link-success.dropdown-toggle{background:#4dbd74}.sidebar .nav-link.nav-link-success i,.sidebar .navbar .nav-link-success.dropdown-toggle i,.navbar .sidebar .nav-link-success.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-success:hover,.sidebar .navbar .nav-link-success.dropdown-toggle:hover,.navbar .sidebar .nav-link-success.dropdown-toggle:hover{background:#41af67 !important}.sidebar .nav-link.nav-link-success:hover i,.sidebar .navbar .nav-link-success.dropdown-toggle:hover i,.navbar .sidebar .nav-link-success.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-info,.sidebar .navbar .nav-link-info.dropdown-toggle,.navbar .sidebar .nav-link-info.dropdown-toggle{background:#63c2de}.sidebar .nav-link.nav-link-info i,.sidebar .navbar .nav-link-info.dropdown-toggle i,.navbar .sidebar .nav-link-info.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-info:hover,.sidebar .navbar .nav-link-info.dropdown-toggle:hover,.navbar .sidebar .nav-link-info.dropdown-toggle:hover{background:#4ebada !important}.sidebar .nav-link.nav-link-info:hover i,.sidebar .navbar .nav-link-info.dropdown-toggle:hover i,.navbar .sidebar .nav-link-info.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-warning,.sidebar .navbar .nav-link-warning.dropdown-toggle,.navbar .sidebar .nav-link-warning.dropdown-toggle{background:#fc0}.sidebar .nav-link.nav-link-warning i,.sidebar .navbar .nav-link-warning.dropdown-toggle i,.navbar .sidebar .nav-link-warning.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-warning:hover,.sidebar .navbar .nav-link-warning.dropdown-toggle:hover,.navbar .sidebar .nav-link-warning.dropdown-toggle:hover{background:#e6b800 !important}.sidebar .nav-link.nav-link-warning:hover i,.sidebar .navbar .nav-link-warning.dropdown-toggle:hover i,.navbar .sidebar .nav-link-warning.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-danger,.sidebar .navbar .nav-link-danger.dropdown-toggle,.navbar .sidebar .nav-link-danger.dropdown-toggle{background:#f86c6b}.sidebar .nav-link.nav-link-danger i,.sidebar .navbar .nav-link-danger.dropdown-toggle i,.navbar .sidebar .nav-link-danger.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-danger:hover,.sidebar .navbar .nav-link-danger.dropdown-toggle:hover,.navbar .sidebar .nav-link-danger.dropdown-toggle:hover{background:#f75453 !important}.sidebar .nav-link.nav-link-danger:hover i,.sidebar .navbar .nav-link-danger.dropdown-toggle:hover i,.navbar .sidebar .nav-link-danger.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-light,.sidebar .navbar .nav-link-light.dropdown-toggle,.navbar .sidebar .nav-link-light.dropdown-toggle{background:#f0f3f5}.sidebar .nav-link.nav-link-light i,.sidebar .navbar .nav-link-light.dropdown-toggle i,.navbar .sidebar .nav-link-light.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-light:hover,.sidebar .navbar .nav-link-light.dropdown-toggle:hover,.navbar .sidebar .nav-link-light.dropdown-toggle:hover{background:#e1e7eb !important}.sidebar .nav-link.nav-link-light:hover i,.sidebar .navbar .nav-link-light.dropdown-toggle:hover i,.navbar .sidebar .nav-link-light.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-dark,.sidebar .navbar .nav-link-dark.dropdown-toggle,.navbar .sidebar .nav-link-dark.dropdown-toggle{background:#29363d}.sidebar .nav-link.nav-link-dark i,.sidebar .navbar .nav-link-dark.dropdown-toggle i,.navbar .sidebar .nav-link-dark.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-dark:hover,.sidebar .navbar .nav-link-dark.dropdown-toggle:hover,.navbar .sidebar .nav-link-dark.dropdown-toggle:hover{background:#1f292e !important}.sidebar .nav-link.nav-link-dark:hover i,.sidebar .navbar .nav-link-dark.dropdown-toggle:hover i,.navbar .sidebar .nav-link-dark.dropdown-toggle:hover i{color:#fff}.sidebar .nav-dropdown-toggle{position:relative}.sidebar .nav-dropdown-toggle::before{position:absolute;top:50%;right:1rem;display:block;width:8px;height:8px;padding:0;margin-top:-4px;content:\\\"\\\";background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23536c79' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:center;transition:transform .3s}.sidebar .nav-dropdown.open{background:rgba(0,0,0,0.2)}.sidebar .nav-dropdown.open>.nav-dropdown-items{max-height:1000px}.sidebar .nav-dropdown.open .nav-link,.sidebar .nav-dropdown.open .navbar .dropdown-toggle,.navbar .sidebar .nav-dropdown.open .dropdown-toggle{color:#fff;border-left:0 !important}.sidebar .nav-dropdown.open>.nav-link.nav-dropdown-toggle::before,.sidebar .navbar .nav-dropdown.open>.nav-dropdown-toggle.dropdown-toggle::before,.navbar .sidebar .nav-dropdown.open>.nav-dropdown-toggle.dropdown-toggle::before{transform:rotate(-90deg)}.sidebar .nav-dropdown.open .nav-dropdown.open{border-left:0}.sidebar .nav-label{display:block;padding:.09375rem 1rem;color:#c2cfd6}.sidebar .nav-label:hover{color:#fff;text-decoration:none}.sidebar .nav-label i{width:20px;margin:-3px .5rem 0 0;font-size:10px;color:#536c79;text-align:center;vertical-align:middle}.sidebar .progress{background-color:#485f6b !important}.sidebar .sidebar-footer{flex:0 0 auto;padding:.75rem 1rem;background:rgba(0,0,0,0.2)}.sidebar .sidebar-minimizer{position:relative;flex:0 0 50px;background-color:rgba(0,0,0,0.2);border:0}.sidebar .sidebar-minimizer::before{position:absolute;top:0;right:0;width:50px;height:50px;content:\\\"\\\";background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23536c79' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:center;background-size:12.5px;transition:.3s}.sidebar .sidebar-minimizer:focus,.sidebar .sidebar-minimizer.focus{outline:0}.sidebar .sidebar-minimizer:hover{background-color:rgba(0,0,0,0.3)}.sidebar .sidebar-minimizer:hover::before{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\")}@media (min-width: 992px){.sidebar-compact .sidebar .sidebar-nav{width:150px}.sidebar-compact .sidebar .nav{width:150px}.sidebar-compact .sidebar .nav .nav-title{text-align:center}.sidebar-compact .sidebar .nav .nav-item{width:150px;border-left:0 !important}.sidebar-compact .sidebar .nav .nav-item .nav-link,.sidebar-compact .sidebar .nav .nav-item .navbar .dropdown-toggle,.navbar .sidebar-compact .sidebar .nav .nav-item .dropdown-toggle{text-align:center}.sidebar-compact .sidebar .nav .nav-item .nav-link i,.sidebar-compact .sidebar .nav .nav-item .navbar .dropdown-toggle i,.navbar .sidebar-compact .sidebar .nav .nav-item .dropdown-toggle i{display:block;width:100%;margin:.25rem 0;font-size:24px}.sidebar-compact .sidebar .nav .nav-item .nav-link .badge,.sidebar-compact .sidebar .nav .nav-item .navbar .dropdown-toggle .badge,.navbar .sidebar-compact .sidebar .nav .nav-item .dropdown-toggle .badge{position:absolute;top:18px;right:10px}.sidebar-compact .sidebar .nav .nav-item .nav-link.nav-dropdown-toggle::before,.sidebar-compact .sidebar .nav .nav-item .navbar .nav-dropdown-toggle.dropdown-toggle::before,.navbar .sidebar-compact .sidebar .nav .nav-item .nav-dropdown-toggle.dropdown-toggle::before{top:30px}.sidebar-minimized .hidden-cn{display:none}.sidebar-minimized .sidebar{z-index:1019}.sidebar-minimized .sidebar .sidebar-nav{overflow:visible;width:50px}.sidebar-minimized .sidebar .nav{width:50px}.sidebar-minimized .sidebar .nav-divider,.sidebar-minimized .sidebar .divider,.sidebar-minimized .sidebar .nav-title,.sidebar-minimized .sidebar .sidebar-footer,.sidebar-minimized .sidebar .sidebar-form,.sidebar-minimized .sidebar .sidebar-header{display:none}.sidebar-minimized .sidebar .sidebar-minimizer::before{width:100%;transform:rotate(-180deg)}.sidebar-minimized .sidebar .nav-item{width:50px;overflow:hidden;border-left:0 !important}.sidebar-minimized .sidebar .nav-item:hover{width:250px;overflow:visible}.sidebar-minimized .sidebar .nav-item:hover>.nav-link,.sidebar-minimized .sidebar .navbar .nav-item:hover>.dropdown-toggle,.navbar .sidebar-minimized .sidebar .nav-item:hover>.dropdown-toggle{background:#039}.sidebar-minimized .sidebar .nav-item:hover>.nav-link i,.sidebar-minimized .sidebar .navbar .nav-item:hover>.dropdown-toggle i,.navbar .sidebar-minimized .sidebar .nav-item:hover>.dropdown-toggle i{color:#fff}.sidebar-minimized .sidebar .nav-link,.sidebar-minimized .sidebar .navbar .dropdown-toggle,.navbar .sidebar-minimized .sidebar .dropdown-toggle{position:relative;padding-left:0;margin:0;white-space:nowrap;border-left:0 !important}.sidebar-minimized .sidebar .nav-link i,.sidebar-minimized .sidebar .navbar .dropdown-toggle i,.navbar .sidebar-minimized .sidebar .dropdown-toggle i{display:block;float:left;width:50px;font-size:18px}.sidebar-minimized .sidebar .nav-link .badge,.sidebar-minimized .sidebar .navbar .dropdown-toggle .badge,.navbar .sidebar-minimized .sidebar .dropdown-toggle .badge{position:absolute;right:15px;display:none}.sidebar-minimized .sidebar .nav-link:hover,.sidebar-minimized .sidebar .navbar .dropdown-toggle:hover,.navbar .sidebar-minimized .sidebar .dropdown-toggle:hover{width:250px;background:#039}.sidebar-minimized .sidebar .nav-link:hover .badge,.sidebar-minimized .sidebar .navbar .dropdown-toggle:hover .badge,.navbar .sidebar-minimized .sidebar .dropdown-toggle:hover .badge{display:inline}.sidebar-minimized .sidebar .nav-link.nav-dropdown-toggle::before,.sidebar-minimized .sidebar .navbar .nav-dropdown-toggle.dropdown-toggle::before,.navbar .sidebar-minimized .sidebar .nav-dropdown-toggle.dropdown-toggle::before{display:none}.sidebar-minimized .sidebar .nav-dropdown-items .nav-item{width:200px}.sidebar-minimized .sidebar .nav-dropdown-items .nav-item .nav-link,.sidebar-minimized .sidebar .nav-dropdown-items .nav-item .navbar .dropdown-toggle,.navbar .sidebar-minimized .sidebar .nav-dropdown-items .nav-item .dropdown-toggle{width:200px}.sidebar-minimized .sidebar .nav>.nav-dropdown>.nav-dropdown-items{display:none;max-height:1000px;background:#29363d}.sidebar-minimized .sidebar .nav>.nav-dropdown:hover{background:#039}.sidebar-minimized .sidebar .nav>.nav-dropdown:hover>.nav-dropdown-items{position:absolute;left:50px;display:inline}}.switch.switch-default{position:relative;display:inline-block;vertical-align:top;width:40px;height:24px;background-color:transparent;cursor:pointer}.switch.switch-default .switch-input{position:absolute;top:0;left:0;opacity:0}.switch.switch-default .switch-label{position:relative;display:block;height:inherit;font-size:10px;font-weight:600;text-transform:uppercase;background-color:#fff;border:1px solid #a4b7c1;border-radius:2px;transition:opacity background .15s ease-out}.switch.switch-default .switch-input:checked ~ .switch-label::before{opacity:0}.switch.switch-default .switch-input:checked ~ .switch-label::after{opacity:1}.switch.switch-default .switch-handle{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border:1px solid #a4b7c1;border-radius:1px;transition:left .15s ease-out}.switch.switch-default .switch-input:checked ~ .switch-handle{left:18px}.switch.switch-default.switch-lg{width:48px;height:28px}.switch.switch-default.switch-lg .switch-label{font-size:12px}.switch.switch-default.switch-lg .switch-handle{width:24px;height:24px}.switch.switch-default.switch-lg .switch-input:checked ~ .switch-handle{left:22px}.switch.switch-default.switch-sm{width:32px;height:20px}.switch.switch-default.switch-sm .switch-label{font-size:8px}.switch.switch-default.switch-sm .switch-handle{width:16px;height:16px}.switch.switch-default.switch-sm .switch-input:checked ~ .switch-handle{left:14px}.switch.switch-default.switch-xs{width:24px;height:16px}.switch.switch-default.switch-xs .switch-label{font-size:7px}.switch.switch-default.switch-xs .switch-handle{width:12px;height:12px}.switch.switch-default.switch-xs .switch-input:checked ~ .switch-handle{left:10px}.switch.switch-text{position:relative;display:inline-block;vertical-align:top;width:48px;height:24px;background-color:transparent;cursor:pointer}.switch.switch-text .switch-input{position:absolute;top:0;left:0;opacity:0}.switch.switch-text .switch-label{position:relative;display:block;height:inherit;font-size:10px;font-weight:600;text-transform:uppercase;background-color:#fff;border:1px solid #a4b7c1;border-radius:2px;transition:opacity background .15s ease-out}.switch.switch-text .switch-label::before,.switch.switch-text .switch-label::after{position:absolute;top:50%;width:50%;margin-top:-.5em;line-height:1;text-align:center;transition:inherit}.switch.switch-text .switch-label::before{right:1px;color:#c2cfd6;content:attr(data-off)}.switch.switch-text .switch-label::after{left:1px;color:#fff;content:attr(data-on);opacity:0}.switch.switch-text .switch-input:checked ~ .switch-label::before{opacity:0}.switch.switch-text .switch-input:checked ~ .switch-label::after{opacity:1}.switch.switch-text .switch-handle{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border:1px solid #a4b7c1;border-radius:1px;transition:left .15s ease-out}.switch.switch-text .switch-input:checked ~ .switch-handle{left:26px}.switch.switch-text.switch-lg{width:56px;height:28px}.switch.switch-text.switch-lg .switch-label{font-size:12px}.switch.switch-text.switch-lg .switch-handle{width:24px;height:24px}.switch.switch-text.switch-lg .switch-input:checked ~ .switch-handle{left:30px}.switch.switch-text.switch-sm{width:40px;height:20px}.switch.switch-text.switch-sm .switch-label{font-size:8px}.switch.switch-text.switch-sm .switch-handle{width:16px;height:16px}.switch.switch-text.switch-sm .switch-input:checked ~ .switch-handle{left:22px}.switch.switch-text.switch-xs{width:32px;height:16px}.switch.switch-text.switch-xs .switch-label{font-size:7px}.switch.switch-text.switch-xs .switch-handle{width:12px;height:12px}.switch.switch-text.switch-xs .switch-input:checked ~ .switch-handle{left:18px}.switch.switch-icon{position:relative;display:inline-block;vertical-align:top;width:48px;height:24px;background-color:transparent;cursor:pointer}.switch.switch-icon .switch-input{position:absolute;top:0;left:0;opacity:0}.switch.switch-icon .switch-label{position:relative;display:block;height:inherit;font-family:FontAwesome;font-size:10px;font-weight:600;text-transform:uppercase;background-color:#fff;border:1px solid #a4b7c1;border-radius:2px;transition:opacity background .15s ease-out}.switch.switch-icon .switch-label::before,.switch.switch-icon .switch-label::after{position:absolute;top:50%;width:50%;margin-top:-.5em;line-height:1;text-align:center;transition:inherit}.switch.switch-icon .switch-label::before{right:1px;color:#c2cfd6;content:attr(data-off)}.switch.switch-icon .switch-label::after{left:1px;color:#fff;content:attr(data-on);opacity:0}.switch.switch-icon .switch-input:checked ~ .switch-label::before{opacity:0}.switch.switch-icon .switch-input:checked ~ .switch-label::after{opacity:1}.switch.switch-icon .switch-handle{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border:1px solid #a4b7c1;border-radius:1px;transition:left .15s ease-out}.switch.switch-icon .switch-input:checked ~ .switch-handle{left:26px}.switch.switch-icon.switch-lg{width:56px;height:28px}.switch.switch-icon.switch-lg .switch-label{font-size:12px}.switch.switch-icon.switch-lg .switch-handle{width:24px;height:24px}.switch.switch-icon.switch-lg .switch-input:checked ~ .switch-handle{left:30px}.switch.switch-icon.switch-sm{width:40px;height:20px}.switch.switch-icon.switch-sm .switch-label{font-size:8px}.switch.switch-icon.switch-sm .switch-handle{width:16px;height:16px}.switch.switch-icon.switch-sm .switch-input:checked ~ .switch-handle{left:22px}.switch.switch-icon.switch-xs{width:32px;height:16px}.switch.switch-icon.switch-xs .switch-label{font-size:7px}.switch.switch-icon.switch-xs .switch-handle{width:12px;height:12px}.switch.switch-icon.switch-xs .switch-input:checked ~ .switch-handle{left:18px}.switch.switch-3d{position:relative;display:inline-block;vertical-align:top;width:40px;height:24px;background-color:transparent;cursor:pointer}.switch.switch-3d .switch-input{position:absolute;top:0;left:0;opacity:0}.switch.switch-3d .switch-label{position:relative;display:block;height:inherit;font-size:10px;font-weight:600;text-transform:uppercase;background-color:#f0f3f5;border:1px solid #a4b7c1;border-radius:2px;transition:opacity background .15s ease-out}.switch.switch-3d .switch-input:checked ~ .switch-label::before{opacity:0}.switch.switch-3d .switch-input:checked ~ .switch-label::after{opacity:1}.switch.switch-3d .switch-handle{position:absolute;top:0;left:0;width:24px;height:24px;background:#fff;border:1px solid #a4b7c1;border-radius:1px;transition:left .15s ease-out;border:0;box-shadow:0 2px 5px rgba(0,0,0,0.3)}.switch.switch-3d .switch-input:checked ~ .switch-handle{left:16px}.switch.switch-3d.switch-lg{width:48px;height:28px}.switch.switch-3d.switch-lg .switch-label{font-size:12px}.switch.switch-3d.switch-lg .switch-handle{width:28px;height:28px}.switch.switch-3d.switch-lg .switch-input:checked ~ .switch-handle{left:20px}.switch.switch-3d.switch-sm{width:32px;height:20px}.switch.switch-3d.switch-sm .switch-label{font-size:8px}.switch.switch-3d.switch-sm .switch-handle{width:20px;height:20px}.switch.switch-3d.switch-sm .switch-input:checked ~ .switch-handle{left:12px}.switch.switch-3d.switch-xs{width:24px;height:16px}.switch.switch-3d.switch-xs .switch-label{font-size:7px}.switch.switch-3d.switch-xs .switch-handle{width:16px;height:16px}.switch.switch-3d.switch-xs .switch-input:checked ~ .switch-handle{left:8px}.switch-pill .switch-label,.switch.switch-3d .switch-label,.switch-pill .switch-handle,.switch.switch-3d .switch-handle{border-radius:50em !important}.switch-pill .switch-label::before,.switch.switch-3d .switch-label::before{right:2px !important}.switch-pill .switch-label::after,.switch.switch-3d .switch-label::after{left:2px !important}.switch-primary>.switch-input:checked ~ .switch-label{background:#039 !important;border-color:#026}.switch-primary>.switch-input:checked ~ .switch-handle{border-color:#026}.switch-primary-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#039}.switch-primary-outline>.switch-input:checked ~ .switch-label::after{color:#039}.switch-primary-outline>.switch-input:checked ~ .switch-handle{border-color:#039}.switch-primary-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#039}.switch-primary-outline-alt>.switch-input:checked ~ .switch-label::after{color:#039}.switch-primary-outline-alt>.switch-input:checked ~ .switch-handle{background:#039 !important;border-color:#039}.switch-secondary>.switch-input:checked ~ .switch-label{background:#a4b7c1 !important;border-color:#869fac}.switch-secondary>.switch-input:checked ~ .switch-handle{border-color:#869fac}.switch-secondary-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#a4b7c1}.switch-secondary-outline>.switch-input:checked ~ .switch-label::after{color:#a4b7c1}.switch-secondary-outline>.switch-input:checked ~ .switch-handle{border-color:#a4b7c1}.switch-secondary-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#a4b7c1}.switch-secondary-outline-alt>.switch-input:checked ~ .switch-label::after{color:#a4b7c1}.switch-secondary-outline-alt>.switch-input:checked ~ .switch-handle{background:#a4b7c1 !important;border-color:#a4b7c1}.switch-success>.switch-input:checked ~ .switch-label{background:#4dbd74 !important;border-color:#3a9d5d}.switch-success>.switch-input:checked ~ .switch-handle{border-color:#3a9d5d}.switch-success-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#4dbd74}.switch-success-outline>.switch-input:checked ~ .switch-label::after{color:#4dbd74}.switch-success-outline>.switch-input:checked ~ .switch-handle{border-color:#4dbd74}.switch-success-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#4dbd74}.switch-success-outline-alt>.switch-input:checked ~ .switch-label::after{color:#4dbd74}.switch-success-outline-alt>.switch-input:checked ~ .switch-handle{background:#4dbd74 !important;border-color:#4dbd74}.switch-info>.switch-input:checked ~ .switch-label{background:#63c2de !important;border-color:#39b2d5}.switch-info>.switch-input:checked ~ .switch-handle{border-color:#39b2d5}.switch-info-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#63c2de}.switch-info-outline>.switch-input:checked ~ .switch-label::after{color:#63c2de}.switch-info-outline>.switch-input:checked ~ .switch-handle{border-color:#63c2de}.switch-info-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#63c2de}.switch-info-outline-alt>.switch-input:checked ~ .switch-label::after{color:#63c2de}.switch-info-outline-alt>.switch-input:checked ~ .switch-handle{background:#63c2de !important;border-color:#63c2de}.switch-warning>.switch-input:checked ~ .switch-label{background:#fc0 !important;border-color:#cca300}.switch-warning>.switch-input:checked ~ .switch-handle{border-color:#cca300}.switch-warning-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#fc0}.switch-warning-outline>.switch-input:checked ~ .switch-label::after{color:#fc0}.switch-warning-outline>.switch-input:checked ~ .switch-handle{border-color:#fc0}.switch-warning-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#fc0}.switch-warning-outline-alt>.switch-input:checked ~ .switch-label::after{color:#fc0}.switch-warning-outline-alt>.switch-input:checked ~ .switch-handle{background:#fc0 !important;border-color:#fc0}.switch-danger>.switch-input:checked ~ .switch-label{background:#f86c6b !important;border-color:#f63c3a}.switch-danger>.switch-input:checked ~ .switch-handle{border-color:#f63c3a}.switch-danger-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#f86c6b}.switch-danger-outline>.switch-input:checked ~ .switch-label::after{color:#f86c6b}.switch-danger-outline>.switch-input:checked ~ .switch-handle{border-color:#f86c6b}.switch-danger-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#f86c6b}.switch-danger-outline-alt>.switch-input:checked ~ .switch-label::after{color:#f86c6b}.switch-danger-outline-alt>.switch-input:checked ~ .switch-handle{background:#f86c6b !important;border-color:#f86c6b}.switch-light>.switch-input:checked ~ .switch-label{background:#f0f3f5 !important;border-color:#d1dbe1}.switch-light>.switch-input:checked ~ .switch-handle{border-color:#d1dbe1}.switch-light-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#f0f3f5}.switch-light-outline>.switch-input:checked ~ .switch-label::after{color:#f0f3f5}.switch-light-outline>.switch-input:checked ~ .switch-handle{border-color:#f0f3f5}.switch-light-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#f0f3f5}.switch-light-outline-alt>.switch-input:checked ~ .switch-label::after{color:#f0f3f5}.switch-light-outline-alt>.switch-input:checked ~ .switch-handle{background:#f0f3f5 !important;border-color:#f0f3f5}.switch-dark>.switch-input:checked ~ .switch-label{background:#29363d !important;border-color:#151b1f}.switch-dark>.switch-input:checked ~ .switch-handle{border-color:#151b1f}.switch-dark-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#29363d}.switch-dark-outline>.switch-input:checked ~ .switch-label::after{color:#29363d}.switch-dark-outline>.switch-input:checked ~ .switch-handle{border-color:#29363d}.switch-dark-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#29363d}.switch-dark-outline-alt>.switch-input:checked ~ .switch-label::after{color:#29363d}.switch-dark-outline-alt>.switch-input:checked ~ .switch-handle{background:#29363d !important;border-color:#29363d}.table-outline{border:1px solid #a4b7c1}.table-outline td{vertical-align:middle}.table-align-middle td{vertical-align:middle}.table-clear td{border:0}.social-box{min-height:160px;margin-bottom:1.5rem;text-align:center;background:#fff;border:1px solid #c2cfd6}.social-box i{display:block;margin:-1px -1px 0;font-size:40px;line-height:90px;background:#c2cfd6}.social-box .chart-wrapper{height:90px;margin:-90px 0 0}.social-box .chart-wrapper canvas{width:100% !important;height:90px !important}.social-box ul{padding:10px 0;list-style:none}.social-box ul li{display:block;float:left;width:50%}.social-box ul li:first-child{border-right:1px solid #a4b7c1}.social-box ul li strong{display:block;font-size:20px}.social-box ul li span{font-size:10px;font-weight:500;color:#a4b7c1;text-transform:uppercase}.social-box.facebook i{color:#fff;background:#3b5998}.social-box.twitter i{color:#fff;background:#00aced}.social-box.linkedin i{color:#fff;background:#4875b4}.social-box.google-plus i{color:#fff;background:#d34836}.horizontal-bars{padding:0;margin:0;list-style:none}.horizontal-bars li{position:relative;height:40px;line-height:40px;vertical-align:middle}.horizontal-bars li .title{width:100px;font-size:12px;font-weight:600;color:#536c79;vertical-align:middle}.horizontal-bars li .bars{position:absolute;top:15px;width:100%;padding-left:100px}.horizontal-bars li .bars .progress:first-child{margin-bottom:2px}.horizontal-bars li.legend{text-align:center}.horizontal-bars li.legend .badge{display:inline-block;width:8px;height:8px;padding:0}.horizontal-bars li.divider{height:40px}.horizontal-bars li.divider i{margin:0 !important}.horizontal-bars.type-2 li{overflow:hidden}.horizontal-bars.type-2 li i{display:inline-block;margin-right:1rem;margin-left:5px;font-size:18px;line-height:40px}.horizontal-bars.type-2 li .title{display:inline-block;width:auto;margin-top:-9px;font-size:.875rem;font-weight:normal;line-height:40px;color:#151b1e}.horizontal-bars.type-2 li .value{float:right;font-weight:600}.horizontal-bars.type-2 li .bars{position:absolute;top:auto;bottom:0;padding:0}.icons-list{padding:0;margin:0;list-style:none}.icons-list li{position:relative;height:40px;vertical-align:middle}.icons-list li i{display:block;float:left;width:35px !important;height:35px !important;margin:2px;line-height:35px !important;text-align:center}.icons-list li .desc{height:40px;margin-left:50px;border-bottom:1px solid #a4b7c1}.icons-list li .desc .title{padding:2px 0 0;margin:0}.icons-list li .desc small{display:block;margin-top:-4px;color:#536c79}.icons-list li .value{position:absolute;top:2px;right:45px;text-align:right}.icons-list li .value strong{display:block;margin-top:-3px}.icons-list li .actions{position:absolute;top:-4px;right:10px;width:40px;height:40px;line-height:40px;text-align:center}.icons-list li .actions i{float:none;width:auto;height:auto;padding:0;margin:0;line-height:normal}.icons-list li.divider{height:40px}.icons-list li.divider i{width:auto;height:auto;margin:2px 0 0;font-size:18px}@media all and (-ms-high-contrast: none){html{display:flex;flex-direction:column}}.app,app-dashboard,app-root{display:flex;flex-direction:column;min-height:100vh}.app-header{flex:0 0 55px}.app-footer{flex:0 0 50px}.app-body{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.app-body .main{flex:1;min-width:0}.app-body .sidebar{flex:0 0 200px;order:-1}.app-body .aside-menu{flex:0 0 250px}.header-fixed .app-header{position:fixed;z-index:1020;width:100%}.header-fixed .app-body{margin-top:55px}.sidebar-hidden .sidebar{margin-left:-200px}.sidebar-fixed .sidebar{position:fixed;z-index:1019;width:200px;height:calc(100vh - 55px)}.sidebar-fixed .main,.sidebar-fixed .app-footer{margin-left:200px}.sidebar-fixed.sidebar-hidden .main,.sidebar-fixed.sidebar-hidden .app-footer{margin-left:0}.sidebar-off-canvas .sidebar{position:fixed;z-index:1019;height:calc(100vh - 55px)}@media (min-width: 992px){.sidebar-compact .sidebar{flex:0 0 150px}.sidebar-compact.sidebar-hidden .sidebar{margin-left:-150px}.sidebar-compact.sidebar-fixed .main,.sidebar-compact.sidebar-fixed .app-footer{margin-left:150px}.sidebar-compact.sidebar-fixed .sidebar{width:150px}.sidebar-compact.sidebar-fixed.sidebar-hidden .main,.sidebar-compact.sidebar-fixed.sidebar-hidden .app-footer{margin-left:0}.sidebar-minimized .sidebar{flex:0 0 50px}.sidebar-minimized.sidebar-hidden .sidebar{margin-left:-50px}.sidebar-minimized.sidebar-fixed .main,.sidebar-minimized.sidebar-fixed .app-footer{margin-left:50px}.sidebar-minimized.sidebar-fixed .sidebar{width:50px}.sidebar-minimized.sidebar-fixed.sidebar-hidden .main,.sidebar-minimized.sidebar-fixed.sidebar-hidden .app-footer{margin-left:0}}.aside-menu-hidden .aside-menu{margin-right:-250px}.aside-menu-fixed .aside-menu{position:fixed;right:0;height:100%}.aside-menu-fixed .aside-menu .tab-content{height:calc(100vh - 2.375rem - 55px)}.aside-menu-fixed .main,.aside-menu-fixed .app-footer{margin-right:250px}.aside-menu-fixed.aside-menu-hidden .main,.aside-menu-fixed.aside-menu-hidden .app-footer{margin-right:0}.aside-menu-off-canvas .aside-menu{position:fixed;right:0;z-index:1019;height:100%}.aside-menu-off-canvas .aside-menu .tab-content{height:calc(100vh - 2.375rem - 55px)}.breadcrumb-fixed .main{padding-top:3.875rem}.breadcrumb-fixed .breadcrumb{position:fixed;top:55px;right:0;left:0;z-index:1018}.breadcrumb-fixed .main:nth-child(2) .breadcrumb{right:250px;left:200px}.breadcrumb-fixed .main:first-child .breadcrumb{right:250px;left:0}.breadcrumb-fixed .main:last-child .breadcrumb{right:0}.breadcrumb-fixed.sidebar-minimized .main .breadcrumb{left:50px}.breadcrumb-fixed.sidebar-hidden .main .breadcrumb,.breadcrumb-fixed.sidebar-off-canvas .main .breadcrumb{left:0}.breadcrumb-fixed.aside-menu-hidden .main .breadcrumb,.breadcrumb-fixed.aside-menu-off-canvas .main .breadcrumb{right:0}.footer-fixed .app-footer{position:fixed;right:0;bottom:0;left:0;z-index:1020;height:50px}.footer-fixed .app-body{margin-bottom:50px}.app-header,.app-footer,.sidebar,.main,.aside-menu{transition:margin-left .25s,margin-right .25s,width .25s,flex .25s}.sidebar-nav{transition:width .25s}.breadcrumb{transition:left .25s,right .25s,width .25s}@media (max-width: 991.98px){.app-header.navbar{position:fixed !important;z-index:1020;width:100%;text-align:center;background-color:#fff;border-bottom:1px solid #a4b7c1}.app-header.navbar .navbar-toggler{color:#536c79}.app-header.navbar .navbar-brand{position:absolute;left:50%;margin-left:-77.5px}.app-body{margin-top:55px}.breadcrumb-fixed .main:nth-child(2) .breadcrumb{right:auto;left:auto;width:100%}.sidebar{position:fixed;z-index:1019;width:220px;height:calc(100vh - 55px);margin-left:-220px}.sidebar .sidebar-nav,.sidebar .nav{width:220px;min-height:calc(100vh - 55px)}.sidebar .sidebar-minimizer{display:none}.main,.app-footer{margin-left:0 !important}.sidebar-hidden .sidebar{margin-left:-220px}.sidebar-mobile-show .sidebar{width:220px;margin-left:0}.sidebar-mobile-show .main{margin-right:-220px !important;margin-left:220px !important}}hr.transparent{border-top:1px solid transparent}.bg-primary,.bg-success,.bg-info,.bg-warning,.bg-danger,.bg-inverse{color:#fff}.b-a-0{border:0 !important}.b-t-0{border-top:0 !important}.b-r-0{border-right:0 !important}.b-b-0{border-bottom:0 !important}.b-l-0{border-left:0 !important}.b-a-1{border:1px solid #a4b7c1 !important}.b-t-1{border-top:1px solid #a4b7c1 !important}.b-r-1{border-right:1px solid #a4b7c1 !important}.b-b-1{border-bottom:1px solid #a4b7c1 !important}.b-l-1{border-left:1px solid #a4b7c1 !important}.b-a-2{border:2px solid #a4b7c1 !important}.b-t-2{border-top:2px solid #a4b7c1 !important}.b-r-2{border-right:2px solid #a4b7c1 !important}.b-b-2{border-bottom:2px solid #a4b7c1 !important}.b-l-2{border-left:2px solid #a4b7c1 !important}@media (max-width: 575.98px){.d-down-none{display:none !important}}@media (max-width: 767.98px){.d-sm-down-none{display:none !important}}@media (max-width: 991.98px){.d-md-down-none{display:none !important}}@media (max-width: 1199.98px){.d-lg-down-none{display:none !important}}.d-xl-down-none{display:none !important}.label-pill{border-radius:1rem !important}.open>a,.show>a{outline:0}.navbar .dropdown-toggle .img-avatar{height:35px;margin:0 10px}*[dir=\\\"rtl\\\"]{direction:rtl;unicode-bidi:embed}*[dir=\\\"rtl\\\"] ul{-webkit-padding-start:0}*[dir=\\\"rtl\\\"] table tr th{text-align:right}*[dir=\\\"rtl\\\"] .breadcrumb-item{float:right}*[dir=\\\"rtl\\\"] .breadcrumb-menu{right:auto;left:1rem}*[dir=\\\"rtl\\\"] .dropdown-item{text-align:right}*[dir=\\\"rtl\\\"] .dropdown-item i{margin-right:-10px;margin-left:10px}*[dir=\\\"rtl\\\"] .dropdown-item .badge{right:auto;left:10px}*[dir=\\\"rtl\\\"] .sidebar-hidden .sidebar{margin-right:-200px}*[dir=\\\"rtl\\\"] .sidebar-fixed .main,*[dir=\\\"rtl\\\"] .sidebar-fixed .app-footer{margin-right:200px}*[dir=\\\"rtl\\\"] .sidebar-fixed.sidebar-hidden .main,*[dir=\\\"rtl\\\"] .sidebar-fixed.sidebar-hidden .app-footer{margin-right:0}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar{flex:0 0 50px}*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-hidden .sidebar{margin-right:-50px;margin-left:0}*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-fixed .main,*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-fixed .app-footer{margin-right:50px}*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-fixed.sidebar-hidden .main,*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-fixed.sidebar-hidden .app-footer{margin-left:0}*[dir=\\\"rtl\\\"] .aside-menu-hidden .aside-menu{margin-right:0;margin-left:-250px}*[dir=\\\"rtl\\\"] .aside-menu-fixed .aside-menu{right:auto;left:0}*[dir=\\\"rtl\\\"] .aside-menu-fixed .main,*[dir=\\\"rtl\\\"] .aside-menu-fixed .app-footer{margin-left:250px}*[dir=\\\"rtl\\\"] .aside-menu-fixed.aside-menu-hidden .main,*[dir=\\\"rtl\\\"] .aside-menu-fixed.aside-menu-hidden .app-footer{margin-left:0}*[dir=\\\"rtl\\\"] .aside-menu-off-canvas .aside-menu{position:fixed;right:0;z-index:1019;height:100%}*[dir=\\\"rtl\\\"] .aside-menu-off-canvas .aside-menu .tab-content{height:calc(100vh - 2.375rem - 55px)}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-link,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .navbar .dropdown-toggle,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .dropdown-toggle{direction:rtl}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-link i,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .navbar .dropdown-toggle i,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .dropdown-toggle i{margin:0 0 0 .5rem}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-link .badge,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .navbar .dropdown-toggle .badge,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .dropdown-toggle .badge{float:left;margin-top:2px}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-link.nav-dropdown-toggle::before,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .navbar .nav-dropdown-toggle.dropdown-toggle::before,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-dropdown-toggle.dropdown-toggle::before{position:absolute;right:auto !important;left:1rem;transform:rotate(180deg)}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item.nav-dropdown.open>.nav-link.nav-dropdown-toggle::before,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .navbar .nav-item.nav-dropdown.open>.nav-dropdown-toggle.dropdown-toggle::before,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item.nav-dropdown.open>.nav-dropdown-toggle.dropdown-toggle::before{transform:rotate(270deg)}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .nav-link,*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .navbar .dropdown-toggle,.navbar *[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .dropdown-toggle{padding-right:0}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .nav-link i,*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .navbar .dropdown-toggle i,.navbar *[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .dropdown-toggle i{float:right;padding:0;margin:0}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .nav-link .badge,*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .navbar .dropdown-toggle .badge,.navbar *[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .dropdown-toggle .badge{right:auto;left:15px}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .nav>.nav-dropdown:hover>.nav-dropdown-items{right:50px;left:0}*[dir=\\\"rtl\\\"] .horizontal-bars li .bars{padding-right:100px;padding-left:0}*[dir=\\\"rtl\\\"] .horizontal-bars li .bars .progress:first-child{margin-bottom:2px}*[dir=\\\"rtl\\\"] .horizontal-bars.type-2 li i{margin-right:5px;margin-left:1rem}*[dir=\\\"rtl\\\"] .horizontal-bars.type-2 li .value{float:left;font-weight:600}*[dir=\\\"rtl\\\"] .horizontal-bars.type-2 li .bars{padding:0}*[dir=\\\"rtl\\\"] .icons-list li{position:relative;height:40px;vertical-align:middle}*[dir=\\\"rtl\\\"] .icons-list li i{float:right}*[dir=\\\"rtl\\\"] .icons-list li .desc{margin-right:50px;margin-left:0}*[dir=\\\"rtl\\\"] .icons-list li .value{right:auto;left:45px;text-align:left}*[dir=\\\"rtl\\\"] .icons-list li .value strong{display:block;margin-top:-3px}*[dir=\\\"rtl\\\"] .icons-list li .actions{right:auto;left:10px}*[dir=\\\"rtl\\\"] .callout{border:0 solid #a4b7c1;border-right-width:.25rem}*[dir=\\\"rtl\\\"] .callout.callout-primary{border-right-color:#039}*[dir=\\\"rtl\\\"] .callout.callout-secondary{border-right-color:#a4b7c1}*[dir=\\\"rtl\\\"] .callout.callout-success{border-right-color:#4dbd74}*[dir=\\\"rtl\\\"] .callout.callout-info{border-right-color:#63c2de}*[dir=\\\"rtl\\\"] .callout.callout-warning{border-right-color:#fc0}*[dir=\\\"rtl\\\"] .callout.callout-danger{border-right-color:#f86c6b}*[dir=\\\"rtl\\\"] .callout.callout-light{border-right-color:#f0f3f5}*[dir=\\\"rtl\\\"] .callout.callout-dark{border-right-color:#29363d}*[dir=\\\"rtl\\\"] .callout .chart-wrapper{left:0;float:left}*[dir=\\\"rtl\\\"] .callout-default{border-right-color:#536c79}form.rjsf label{margin-bottom:0}form.rjsf div>p.field-description{font-size:0.7rem;font-style:italic;margin-bottom:0px}form.rjsf input{width:auto}form.rjsf div.row.array-item{background-color:aliceblue;margin-bottom:3px}@media (max-width: 767px){.container-fluid,.container-sm,.container-md,.container-lg,.container-xl,.row{padding:0 2px !important}.navbar-header{margin:0px}}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./scss/style.scss\",\"webpack://./../../node_modules/bootstrap/scss/bootstrap.scss\",\"webpack://./../../node_modules/bootstrap/scss/_root.scss\",\"webpack://./../../node_modules/bootstrap/scss/_reboot.scss\",\"webpack://./scss/_bootstrap-variables.scss\",\"webpack://./../../node_modules/bootstrap/scss/_variables.scss\",\"webpack://./../../node_modules/bootstrap/scss/vendor/_rfs.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_hover.scss\",\"webpack://./../../node_modules/bootstrap/scss/_type.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_lists.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_image.scss\",\"webpack://./../../node_modules/bootstrap/scss/_images.scss\",\"webpack://./../../node_modules/bootstrap/scss/_code.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_grid.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_breakpoints.scss\",\"webpack://./../../node_modules/bootstrap/scss/_grid.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_grid-framework.scss\",\"webpack://./../../node_modules/bootstrap/scss/_tables.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_table-row.scss\",\"webpack://./../../node_modules/bootstrap/scss/_functions.scss\",\"webpack://./../../node_modules/bootstrap/scss/_forms.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_border-radius.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_transition.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_forms.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_gradients.scss\",\"webpack://./../../node_modules/bootstrap/scss/_buttons.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_buttons.scss\",\"webpack://./../../node_modules/bootstrap/scss/_transitions.scss\",\"webpack://./../../node_modules/bootstrap/scss/_dropdown.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_caret.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_nav-divider.scss\",\"webpack://./../../node_modules/bootstrap/scss/_button-group.scss\",\"webpack://./../../node_modules/bootstrap/scss/_input-group.scss\",\"webpack://./../../node_modules/bootstrap/scss/_custom-forms.scss\",\"webpack://./../../node_modules/bootstrap/scss/_nav.scss\",\"webpack://./../../node_modules/bootstrap/scss/_navbar.scss\",\"webpack://./../../node_modules/bootstrap/scss/_card.scss\",\"webpack://./../../node_modules/bootstrap/scss/_breadcrumb.scss\",\"webpack://./../../node_modules/bootstrap/scss/_pagination.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_pagination.scss\",\"webpack://./../../node_modules/bootstrap/scss/_badge.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_badge.scss\",\"webpack://./../../node_modules/bootstrap/scss/_jumbotron.scss\",\"webpack://./../../node_modules/bootstrap/scss/_alert.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_alert.scss\",\"webpack://./../../node_modules/bootstrap/scss/_progress.scss\",\"webpack://./../../node_modules/bootstrap/scss/_media.scss\",\"webpack://./../../node_modules/bootstrap/scss/_list-group.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_list-group.scss\",\"webpack://./../../node_modules/bootstrap/scss/_close.scss\",\"webpack://./../../node_modules/bootstrap/scss/_toasts.scss\",\"webpack://./../../node_modules/bootstrap/scss/_modal.scss\",\"webpack://./../../node_modules/bootstrap/scss/_tooltip.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_reset-text.scss\",\"webpack://./../../node_modules/bootstrap/scss/_popover.scss\",\"webpack://./../../node_modules/bootstrap/scss/_carousel.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_clearfix.scss\",\"webpack://./../../node_modules/bootstrap/scss/_spinners.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_align.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_background-variant.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_background.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_borders.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_display.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_embed.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_flex.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_float.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_interactions.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_overflow.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_position.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_screenreaders.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_screen-reader.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_shadows.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_sizing.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_spacing.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_stretched-link.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_text.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_text-truncate.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_text-emphasis.scss\",\"webpack://./../../node_modules/bootstrap/scss/mixins/_text-hide.scss\",\"webpack://./../../node_modules/bootstrap/scss/utilities/_visibility.scss\",\"webpack://./../../node_modules/bootstrap/scss/_print.scss\",\"webpack://./scss/core/_typography.scss\",\"webpack://./scss/core/_animate.scss\",\"webpack://./scss/core/_aside.scss\",\"webpack://./scss/core/_variables.scss\",\"webpack://./scss/core/_mixins.scss\",\"webpack://./scss/core/_avatars.scss\",\"webpack://./scss/core/_badge.scss\",\"webpack://./scss/core/_breadcrumb-menu.scss\",\"webpack://./scss/core/_breadcrumb.scss\",\"webpack://./scss/core/_buttons.scss\",\"webpack://./scss/core/_callout.scss\",\"webpack://./scss/core/_card.scss\",\"webpack://./scss/core/_charts.scss\",\"webpack://./scss/core/_dropdown.scss\",\"webpack://./scss/core/_footer.scss\",\"webpack://./scss/core/_grid.scss\",\"webpack://./scss/core/_input-group.scss\",\"webpack://./scss/core/_loading.scss\",\"webpack://./scss/core/_modal.scss\",\"webpack://./scss/core/_nav.scss\",\"webpack://./scss/core/_navbar.scss\",\"webpack://./scss/core/_progress.scss\",\"webpack://./scss/core/_sidebar.scss\",\"webpack://./scss/core/_switches.scss\",\"webpack://./scss/core/_tables.scss\",\"webpack://./scss/core/_widgets.scss\",\"webpack://./scss/core/_layout.scss\",\"webpack://./scss/core/_others.scss\",\"webpack://./scss/core/utilities/_background.scss\",\"webpack://./scss/core/utilities/_borders.scss\",\"webpack://./scss/core/utilities/_display.scss\",\"webpack://./scss/core/_temp.scss\",\"webpack://./scss/core/_rtl.scss\",\"webpack://./scss/_custom.scss\"],\"names\":[],\"mappings\":\"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,CE5Jf,eHwS+B,CGvShC,WF2JK,cAAW,CEtJf,eH2R+B,CG1R/B,eHkR+B,CGjRhC,WFoJK,gBAAW,CEjJf,eHuR+B,CGtR/B,eH6Q+B,CG5QhC,WF+IK,gBAAW,CE5If,eHmR+B,CGlR/B,eHwQ+B,CGvQhC,WF0IK,gBAAW,CEvIf,eH+Q+B,CG9Q/B,eHmQ+B,CFtOjC,GKpBE,eHgFW,CG/EX,kBH+EW,CG9EX,QAAS,CACT,oCJ1CoC,CI2CrC,aFyGG,gBAAW,CE/Fb,eH2N+B,CG1NhC,WAIC,YHmQgC,CGlQhC,wBH2QmC,CG1QpC,eCxEC,cAAe,CACf,eAAgB,CDgFjB,aCjFC,cAAe,CACf,eAAgB,CDqFjB,kBAEC,oBAAqB,CADvB,mCAII,kBHqP+B,CGpPhC,YFoEC,aAAW,CEzDb,wBAAyB,CAC1B,YAIC,kBHuBW,CC6CP,oBAAW,CElEhB,mBAGC,aAAc,CF+CZ,gBAAW,CE7Cb,aJ3GuC,CIwGzC,2BAMI,oBAAqB,CACtB,WEhHD,cAAe,CAGf,WAAY,CCLb,eAKC,cNqgCwC,CMpgCxC,wBPoDuC,COnDvC,wBPPuC,CMEvC,cAAe,CAGf,WAAY,CCQb,QAQC,oBAAqB,CACtB,YAGC,mBAA2B,CAC3B,aAAc,CACf,gBLgIG,aAAW,CK5Hb,aP5BuC,CO6BxC,KL2HG,eAAW,CMjKb,aRkBuC,CQjBvC,oBAAqB,CAGrB,OACE,aAAc,CACf,IAKD,mBP0lCuC,CCp8BrC,eAAW,CMpJb,URVoC,CQWpC,wBRFuC,CQFzC,QASI,SAAU,CN8IV,cAAW,CM5IX,ePyQ6B,CFjEjC,ISjME,aAAc,CNqIZ,eAAW,CMnIb,aRlBuC,CQezC,SNsII,iBAAW,CM9HX,aAAc,CACd,iBAAkB,CACnB,gBAKD,gBPikCuC,COhkCvC,iBAAkB,CACnB,oFC1CC,UAAW,CACX,kBAA2B,CAC3B,iBAA0B,CAC1B,iBAAkB,CAClB,gBAAiB,CCmDf,0BCzCE,yBACE,eV+LG,CU9LJ,CDuCH,0BCzCE,uCACE,eVgMG,CU/LJ,CDuCH,0BCzCE,qDACE,eViMG,CUhMJ,CDuCH,2BCzCE,mEACE,gBVkMI,CUjML,CA2BL,KFnCA,YAAa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C,sCAKI,wBbxCqC,CamCzC,kDAWM,uBAA4C,CAC7C,mGASD,QAAS,CACV,yCASC,iCb3DkC,CGJpC,4BU2EI,abxEmC,CayEnC,kCbxEgC,CGJd,mDWHlB,wBCgG4D,CDpGhE,uFAYM,oBCwF0D,CZ7FhE,kCWiBM,wBAJsC,CXbtB,0EWqBd,wBARoC,CApB5C,yDAII,wBCgG4D,CDpGhE,+FAYM,oBCwF0D,CZ7FhE,oCWiBM,wBAJsC,CXbtB,8EWqBd,wBARoC,CApB5C,mDAII,wBCgG4D,CDpGhE,uFAYM,oBCwF0D,CZ7FhE,kCWiBM,wBAJsC,CXbtB,0EWqBd,wBARoC,CApB5C,0CAII,wBCgG4D,CDpGhE,2EAYM,oBCwF0D,CZ7FhE,+BWiBM,wBAJsC,CXbtB,oEWqBd,wBARoC,CApB5C,mDAII,wBCgG4D,CDpGhE,uFAYM,oBCwF0D,CZ7FhE,kCWiBM,wBAJsC,CXbtB,0EWqBd,wBARoC,CApB5C,gDAII,wBCgG4D,CDpGhE,mFAYM,oBCwF0D,CZ7FhE,iCWiBM,wBAJsC,CXbtB,wEWqBd,wBARoC,CApB5C,6CAII,wBCgG4D,CDpGhE,+EAYM,oBCwF0D,CZ7FhE,gCWiBM,wBAJsC,CXbtB,sEWqBd,wBARoC,CApB5C,0CAII,wBCgG4D,CDpGhE,2EAYM,oBCwF0D,CZ7FhE,+BWiBM,wBAJsC,CXbtB,oEWqBd,wBARoC,CApB5C,gDAII,kCdOgC,CGJpC,iCWiBM,kCAJsC,CXbtB,wEWqBd,kCARoC,CASrC,sBDgFH,Ub5GgC,Ca6GhC,wBbrGmC,CasGnC,oBZiQqD,CYtQ3D,uBAWM,ab7GmC,Ca8GnC,wBbnHmC,CaoHnC,oBbnHmC,CaoHpC,YAKH,Ub5HoC,Ca6HpC,wBbrHuC,CamHzC,mDAOI,oBZ6OuD,CYpP3D,2BAWI,QAAS,CAXb,oDAgBM,uCb3IgC,CGMpC,uCU4IM,UblJ8B,CamJ9B,wCbnJ8B,CUmElC,6BGiGA,qBAEI,aAAc,CACd,UAAW,CACX,eAAgB,CAChB,gCAAiC,CALpC,qCASK,QAAS,CACV,CH3GL,6BGiGA,qBAEI,aAAc,CACd,UAAW,CACX,eAAgB,CAChB,gCAAiC,CAL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c,CACd,YAAa,CACb,mBfgLwC,Ce/KxC,aAAc,CA7DpB,6BAiEM,kBAAmB,CACnB,sBAAuB,CAlE7B,mCAqEM,eAAgB,CACjB,CKlVL,KACE,oBAAqB,CAErB,epBuR+B,CoBtR/B,arBKuC,CqBJvC,iBAAkB,CAGlB,qBAAsB,CACtB,gBAAiB,CACjB,4BAA6B,CAC7B,4BAA2C,CCuF3C,sBrB4RkC,CChN9B,iBAAW,CoB1Ef,erB2L+B,CgBhR7B,eKuFsC,CJ5FpC,iIjBib6I,CiB7a7I,wCGdN,KHeQ,eAAgB,CG8BvB,ClBvCC,WkBUE,arBPqC,CqBQrC,oBAAqB,ClBXD,sBkBgBpB,SAAU,CACV,0CrBXqC,CqBZzC,4BA6BI,WpBkZ6B,CoB/ajC,mCAkCI,cAAsD,CAUvD,uCAMD,mBAAoB,CACrB,aCnDC,UtBAoC,CoBAlC,qBpBYqC,CsBVvC,iBtBUuC,CGNvC,mBmBAE,UtBNkC,CoBAlC,wBEDoF,CASpF,iBATyH,CnBOrG,sCmBOpB,UtBbkC,CoBAlC,wBEDoF,CAgBpF,iBAhByH,CAqBvH,0CAAiF,CAEpF,4CAKC,UtB3BkC,CsB4BlC,qBtBhBqC,CsBiBrC,iBtBjBqC,CsBsBtC,uIAKC,UtBvCkC,CsBwClC,qBAzCuK,CA6CvK,oBA7C+M,CA+C/M,yJAKI,0CAAiF,CAEpF,eArDH,atBSuC,CoBTrC,wBpBGqC,CsBDvC,oBtBCuC,CGGvC,qBmBAE,atBGqC,CoBTrC,wBEDoF,CASpF,oBATyH,CnBOrG,0CmBOpB,atBJqC,CoBTrC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,4CAAiF,CAEpF,gDAKC,atBlBqC,CsBmBrC,wBtBzBqC,CsB0BrC,oBtB1BqC,CsB+BtC,6IAKC,atB9BqC,CsB+BrC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,+JAKI,4CAAiF,CAEpF,aArDH,UtBAoC,CoBAlC,wBpBmBqC,CsBjBvC,oBtBiBuC,CGbvC,mBmBAE,UtBNkC,CoBAlC,wBEDoF,CASpF,oBATyH,CnBOrG,sCmBOpB,UtBbkC,CoBAlC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,4CAAiF,CAEpF,4CAKC,UtB3BkC,CsB4BlC,wBtBTqC,CsBUrC,oBtBVqC,CsBetC,uIAKC,UtBvCkC,CsBwClC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,yJAKI,4CAAiF,CAEpF,UArDH,atBSuC,CoBTrC,wBpBqBqC,CsBnBvC,oBtBmBuC,CGfvC,gBmBAE,atBGqC,CoBTrC,wBEDoF,CASpF,oBATyH,CnBOrG,gCmBOpB,atBJqC,CoBTrC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,2CAAiF,CAEpF,sCAKC,atBlBqC,CsBmBrC,wBtBPqC,CsBQrC,oBtBRqC,CsBatC,8HAKC,UtBvCkC,CsBwClC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,gJAKI,2CAAiF,CAEpF,aArDH,atBSuC,CoBTrC,qBpBkBqC,CsBhBvC,iBtBgBuC,CGZvC,mBmBAE,atBGqC,CoBTrC,wBEDoF,CASpF,oBATyH,CnBOrG,sCmBOpB,atBJqC,CoBTrC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,0CAAiF,CAEpF,4CAKC,atBlBqC,CsBmBrC,qBtBVqC,CsBWrC,iBtBXqC,CsBgBtC,uIAKC,atB9BqC,CsB+BrC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,yJAKI,0CAAiF,CAEpF,YArDH,UtBAoC,CoBAlC,wBpBgBqC,CsBdvC,oBtBcuC,CGVvC,kBmBAE,UtBNkC,CoBAlC,wBEDoF,CASpF,oBATyH,CnBOrG,oCmBOpB,UtBbkC,CoBAlC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,4CAAiF,CAEpF,0CAKC,UtB3BkC,CsB4BlC,wBtBZqC,CsBarC,oBtBbqC,CsBkBtC,oIAKC,UtBvCkC,CsBwClC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,sJAKI,4CAAiF,CAEpF,WArDH,atBSuC,CoBTrC,wBpBCqC,CsBCvC,oBtBDuC,CGKvC,iBmBAE,atBGqC,CoBTrC,wBEDoF,CASpF,oBATyH,CnBOrG,kCmBOpB,atBJqC,CoBTrC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,4CAAiF,CAEpF,wCAKC,atBlBqC,CsBmBrC,wBtB3BqC,CsB4BrC,oBtB5BqC,CsBiCtC,iIAKC,atB9BqC,CsB+BrC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,mJAKI,4CAAiF,CAEpF,UArDH,UtBAoC,CoBAlC,wBpBQqC,CsBNvC,oBtBMuC,CGFvC,gBmBAE,UtBNkC,CoBAlC,wBEDoF,CASpF,oBATyH,CnBOrG,gCmBOpB,UtBbkC,CoBAlC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,yCAAiF,CAEpF,sCAKC,UtB3BkC,CsB4BlC,wBtBpBqC,CsBqBrC,oBtBrBqC,CsB0BtC,8HAKC,UtBvCkC,CsBwClC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,gJAKI,yCAAiF,CAEpF,qBAKH,UtB9CuC,CsB+CvC,iBtB/CuC,CGNvC,2BmBwDE,UtB9DkC,CsB+DlC,qBtBnDqC,CsBoDrC,iBtBpDqC,CGNjB,sDmB+DpB,yCtBzDqC,CsB0DtC,4DAIC,UtB9DqC,CsB+DrC,4BAA6B,CAC9B,+JAKC,UtBjFkC,CsBkFlC,qBtBtEqC,CsBuErC,iBtBvEqC,CsByErC,iLAKI,yCtB9EiC,CsBgFpC,uBAlCH,atBvDuC,CsBwDvC,oBtBxDuC,CGGvC,6BmBwDE,atBrDqC,CsBsDrC,wBtB5DqC,CsB6DrC,oBtB7DqC,CGGjB,0DmB+DpB,4CtBlEqC,CsBmEtC,gEAIC,atBvEqC,CsBwErC,4BAA6B,CAC9B,qKAKC,atBxEqC,CsByErC,wBtB/EqC,CsBgFrC,oBtBhFqC,CsBkFrC,uLAKI,4CtBvFiC,CsByFpC,qBAlCH,atBvCuC,CsBwCvC,oBtBxCuC,CGbvC,2BmBwDE,UtB9DkC,CsB+DlC,wBtB5CqC,CsB6CrC,oBtB7CqC,CGbjB,sDmB+DpB,2CtBlDqC,CsBmDtC,4DAIC,atBvDqC,CsBwDrC,4BAA6B,CAC9B,+JAKC,UtBjFkC,CsBkFlC,wBtB/DqC,CsBgErC,oBtBhEqC,CsBkErC,iLAKI,2CtBvEiC,CsByEpC,kBAlCH,atBrCuC,CsBsCvC,oBtBtCuC,CGfvC,wBmBwDE,atBrDqC,CsBsDrC,wBtB1CqC,CsB2CrC,oBtB3CqC,CGfjB,gDmB+DpB,2CtBhDqC,CsBiDtC,sDAIC,atBrDqC,CsBsDrC,4BAA6B,CAC9B,sJAKC,atBxEqC,CsByErC,wBtB7DqC,CsB8DrC,oBtB9DqC,CsBgErC,wKAKI,2CtBrEiC,CsBuEpC,qBAlCH,UtBxCuC,CsByCvC,iBtBzCuC,CGZvC,2BmBwDE,atBrDqC,CsBsDrC,qBtB7CqC,CsB8CrC,iBtB9CqC,CGZjB,sDmB+DpB,0CtBnDqC,CsBoDtC,4DAIC,UtBxDqC,CsByDrC,4BAA6B,CAC9B,+JAKC,atBxEqC,CsByErC,qBtBhEqC,CsBiErC,iBtBjEqC,CsBmErC,iLAKI,0CtBxEiC,CsB0EpC,oBAlCH,atB1CuC,CsB2CvC,oBtB3CuC,CGVvC,0BmBwDE,UtB9DkC,CsB+DlC,wBtB/CqC,CsBgDrC,oBtBhDqC,CGVjB,oDmB+DpB,4CtBrDqC,CsBsDtC,0DAIC,atB1DqC,CsB2DrC,4BAA6B,CAC9B,4JAKC,UtBjFkC,CsBkFlC,wBtBlEqC,CsBmErC,oBtBnEqC,CsBqErC,8KAKI,4CtB1EiC,CsB4EpC,mBAlCH,atBzDuC,CsB0DvC,oBtB1DuC,CGKvC,yBmBwDE,atBrDqC,CsBsDrC,wBtB9DqC,CsB+DrC,oBtB/DqC,CGKjB,kDmB+DpB,4CtBpEqC,CsBqEtC,wDAIC,atBzEqC,CsB0ErC,4BAA6B,CAC9B,yJAKC,atBxEqC,CsByErC,wBtBjFqC,CsBkFrC,oBtBlFqC,CsBoFrC,2KAKI,4CtBzFiC,CsB2FpC,kBAlCH,atBlDuC,CsBmDvC,oBtBnDuC,CGFvC,wBmBwDE,UtB9DkC,CsB+DlC,wBtBvDqC,CsBwDrC,oBtBxDqC,CGFjB,gDmB+DpB,yCtB7DqC,CsB8DtC,sDAIC,atBlEqC,CsBmErC,4BAA6B,CAC9B,sJAKC,UtBjFkC,CsBkFlC,wBtB1EqC,CsB2ErC,oBtB3EqC,CsB6ErC,wKAKI,yCtBlFiC,CsBoFpC,UDfH,epB6M+B,CoB5M/B,UrBlEuC,CqBmEvC,oBpB2F4C,CEpK5C,gBkB4EE,apByF8D,CoBxF9D,yBpByF+C,CEtK3B,gCkBkFpB,yBpBoF+C,CoBhGnD,sCAiBI,arBvFqC,CqBwFrC,mBAAoB,CACrB,2BCGD,kBrB2SgC,CC/N5B,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mBAAoB,CACpB,iB5Byf0C,C4Bxf3C,sBAGC,iBAAkB,CAClB,MAAO,CACP,UAAW,CACX,U5Bqf0C,C4Bpf1C,iBAAmF,CACnF,SAAU,CANZ,8DASI,U7B1BkC,C6B2BlC,iB7BfqC,CoBZrC,qBpBYqC,C6BKzC,4DAoBM,0C7BzBmC,C6BKzC,0EAyBI,oB5BsbsE,C4B/c1E,4EA6BI,U7B9CkC,C6B+ClC,wB5Bkf8E,C4Bjf9E,oB5Bif8E,C4BhhBlF,+GAuCM,a7BlDmC,C6BWzC,+HA0CQ,wB7BzDiC,C6B0DlC,sBAUL,iBAAkB,CAClB,eAAgB,CAEhB,kBAAmB,CAJrB,8BASI,iBAAkB,CAClB,aAAgF,CAChF,YAA+D,CAC/D,aAAc,CACd,U5BwbwC,C4BvbxC,W5BubwC,C4BtbxC,mBAAoB,CACpB,UAAW,CACX,qB7BtFkC,C6BuFlC,wB7BlFqC,C6BgEzC,6BAwBI,iBAAkB,CAClB,aAAgF,CAChF,YAA+D,CAC/D,aAAc,CACd,U5ByawC,C4BxaxC,W5BwawC,C4BvaxC,UAAW,CACX,kCAAgE,CACjE,8EAeG,iOd7D4E,CcsDlF,qFAaM,iB7B9GmC,CoBZrC,qBpBYqC,C6BiGzC,oFAkBM,8KdxE4E,CcsDlF,wFT7GI,mCpBYqC,C6BiGzC,8FT7GI,mCpBYqC,C6B6HpC,4CAWD,iB5B0Z+C,C4B7ZnD,2EAQM,6KdlG4E,Cc0FlF,qFTjJI,mCpBYqC,C6BoJpC,eAUH,oBAA2D,CAD7D,6CAKM,aAAqD,CACrD,a5BkY+E,C4BjY/E,kBAAmB,CAEnB,mB5BgY6E,C4BzYnF,4CAaM,yBdlE0D,CcmE1D,yBdnE0D,CcoE1D,sBd5C0D,Cc6C1D,uBd7C0D,Cc8C1D,wB7BrLmC,C6BuLnC,mB5BsX6E,CiBxiB7E,qIjB0f+H,CiBtf/H,wCW2JN,4CX1JQ,eAAgB,CW+KnB,CArBL,4EA0BM,qB7BnMgC,C6BoMhC,4BAA4E,CA3BlF,sFTzKI,mCpBYqC,C6B+LpC,eAYH,oBAAqB,CACrB,UAAW,CACX,iCdrG8D,CcsG9D,sC5BoKkC,CChN9B,iBAAW,C2B+Cf,e5B6D+B,C4B5D/B,e5BiE+B,C4BhE/B,a7BxNuC,C6ByNvC,qBAAsB,CACtB,qO5BmW+I,C4BlW/I,wB7BhOuC,CiBarC,eYoNoD,CAEtD,eAAgB,CAflB,qBAkBI,oB5BwPsE,C4BvPtE,SAAU,CAKR,0C7BlOmC,C6B0MzC,gCAiCM,a7BhPmC,C6BiPnC,qB7BxPgC,C6BsNtC,8DAwCI,WAAY,CACZ,oB5B+HgC,C4B9HhC,qBAAsB,CA1C1B,wBA8CI,a7B9PqC,C6B+PrC,wB7BnQqC,C6BoNzC,2BAoDI,YAAa,CApDjB,8BAyDI,iBAAkB,CAClB,yB7BzQqC,C6B0QtC,kBAID,gCdjK8D,CckK9D,kB5BiHkC,C4BhHlC,qB5BgHkC,C4B/GlC,kB5BgHiC,CC1N7B,mBAAW,C2B4GhB,kBAGC,+BdzK8D,Cc0K9D,iB5B8GiC,C4B7GjC,oB5B6GiC,C4B5GjC,iB5B6GgC,CC/N5B,oBAAW,C2BoHhB,aAQC,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,iCdzL8D,Cc0L9D,eAAgB,CACjB,mBAGC,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,iCdjM8D,CckM9D,QAAS,CACT,eAAgB,CAChB,SAAU,CAPZ,8CAUI,oB5BqKsE,C4BpKtE,0C7BhTqC,C6BqSzC,mGAiBI,wB7BhUqC,C6B+SzC,wDAsBM,gB5B4TQ,C4BlVd,4DA2BI,yBAA0B,CAC3B,mBAID,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,MAAO,CACP,SAAU,CACV,iCdlO8D,CcmO9D,sB5BuCkC,C4BtClC,eAAgB,CAEhB,e5BhE+B,C4BiE/B,e5B5D+B,C4B6D/B,a7BrVuC,C6BsVvC,qB7B7VoC,C6B8VpC,wB7B5VuC,C6B8UzC,0BAmBI,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,SAAU,CACV,aAAc,CACd,2BdrP4D,CcsP5D,sB5BoBgC,C4BnBhC,e5B5E6B,C4B6E7B,a7BrWqC,C6BsWrC,gBAAiB,CT7WjB,wBpBCqC,C6B8WrC,mBAAoB,CAErB,cAUD,UAAW,CACX,ad3Q2B,Cc4Q3B,SAAU,CACV,4BAA6B,CAC7B,eAAgB,CALlB,oBAQI,SAAU,CARd,0CAY8B,4D7B1XW,C6B8WzC,sCAa8B,4D7B3XW,C6B8WzC,+BAc8B,4D7B5XW,C6B8WzC,gCAkBI,QAAS,CAlBb,oCAsBI,U5BoN6C,C4BnN7C,W5BmN6C,C4BlN7C,kBAA0E,CTlZ1E,qBpBYqC,C6BwYrC,Q5BmN0C,CiB7lBxC,yGjB0f+H,C4B5GjI,eAAgB,CX1Yd,wCW4WN,oCX3WQ,eAAgB,CW8YrB,CAnCH,2CT1XI,wBnB4mB2E,C4BlP/E,6CAsCI,U5B6LoC,C4B5LpC,Y5B6LqC,C4B5LrC,iBAAkB,CAClB,c5B4LuC,C4B3LvC,wB7BjaqC,C6BkarC,wBAAyB,CA3C7B,gCAiDI,U5ByL6C,C4BxL7C,W5BwL6C,CmBpmB7C,qBpBYqC,C6BkarC,Q5ByL0C,CiB7lBxC,yGjB0f+H,C4BlFjI,eAAgB,CXpad,wCW4WN,gCX3WQ,eAAgB,CWwarB,CA7DH,uCT1XI,wBnB4mB2E,C4BlP/E,gCAgEI,U5BmKoC,C4BlKpC,Y5BmKqC,C4BlKrC,iBAAkB,CAClB,c5BkKuC,C4BjKvC,wB7B3bqC,C6B4brC,wBAAyB,CArE7B,yBA2EI,U5B+J6C,C4B9J7C,W5B8J6C,C4B7J7C,YAAa,CACb,kB5BrE+B,C4BsE/B,iB5BtE+B,CmBnY/B,qBpBYqC,C6B+brC,Q5B4J0C,CiB7lBxC,yGjB0f+H,C4BrDjI,eAAgB,CXjcd,wCW4WN,yBX3WQ,eAAgB,CWqcrB,CA1FH,gCT1XI,wBnB4mB2E,C4BlP/E,yBA6FI,U5BsIoC,C4BrIpC,Y5BsIqC,C4BrIrC,iBAAkB,CAClB,c5BqIuC,C4BpIvC,4BAA6B,CAC7B,wBAAyB,CACzB,kBAA6C,CAnGjD,8BAwGI,wB7B/dqC,C6BuXzC,8BA6GI,iBAAkB,CAClB,wB7BreqC,C6BuXzC,6CAoHM,wB7BzemC,C6BqXzC,sDAwHM,cAAe,CAxHrB,yCA4HM,wB7BjfmC,C6BqXzC,yCAgIM,cAAe,CAhIrB,kCAoIM,wB7BzfmC,C6B0fpC,gEXrfC,yGjB0f+H,CiBtf/H,wCWqfN,gEXpfQ,eAAgB,CWwfvB,CCxgBD,KACE,YAAa,CACb,cAAe,CACf,cAAe,CACf,eAAgB,CAChB,eAAgB,CACjB,mCAGC,aAAc,CACd,kB7B0qBsC,CEzqBtC,8F2BGE,oBAAqB,C3BAtB,qD2BKC,a9BZqC,C8BarC,mBAAoB,CACpB,cAAe,CAChB,UAQD,+B9B1BuC,C8ByBzC,0FAII,kB7BsM6B,C6BrM7B,4BAA6B,CAC7B,4BAAgD,C3BxBlD,wN2B6BI,iBAAkB,CAClB,oC9BrCmC,CGUtC,qH2B+BG,a9BtCmC,C8BuCnC,4BAA6B,CAC7B,wBAAyB,CAlB/B,sPAwBI,a9B7CqC,C8B8CrC,wB9BQqC,C8BPrC,oC9BOqC,C8BjCzC,yBA+BI,e7B2K6B,C6BxK9B,6FAUC,eAAgB,CAChB,QAAS,CAHb,iOASI,U9B/EkC,C8BgFlC,qB9BpEqC,C8BqEtC,2EAWC,aAAc,CACd,iBAAkB,CACnB,0FAMC,YAAa,CACb,WAAY,CACZ,iBAAkB,CACnB,uBAUC,YAAa,CAFjB,qBAKI,aAAc,CACf,QCzGD,iBAAkB,CAClB,YAAa,CACb,cAAe,CACf,kBAAmB,CACnB,6BAA8B,CAC9B,kB9BgHW,C8BtHb,oIAWI,YAAa,CACb,cAAe,CACf,kBAAmB,CACnB,6BAA8B,CAC/B,cAoBD,oBAAqB,CACrB,qB9BkqBgF,C8BjqBhF,wB9BiqBgF,C8BhqBhF,iB9BgFW,CC6CP,oBAAW,C6B3Hf,mBAAoB,CACpB,kBAAmB,C5B1CnB,wC4B6CE,oBAAqB,C5B1CtB,Y4BoDD,YAAa,CACb,qBAAsB,CACtB,cAAe,CACf,eAAgB,CAChB,eAAgB,CALlB,gGAQI,eAAgB,CAChB,cAAe,CATnB,2BAaI,eAAgB,CAChB,UAAW,CACZ,aASD,oBAAqB,CACrB,iB9BylBuC,C8BxlBvC,oB9BwlBuC,C8BvlBxC,iBAYC,eAAgB,CAChB,WAAY,CAGZ,kBAAmB,CACpB,gBAIC,qB9BomBwC,CCtiBpC,oBAAW,C6B5Df,aAAc,CACd,4BAA6B,CAC7B,4BAAuC,C5B1GvC,4C4B8GE,oBAAqB,C5B3GtB,qB4BkHD,oBAAqB,CACrB,WAAY,CACZ,YAAa,CACb,qBAAsB,CACtB,UAAW,CACX,oCAAqC,CACtC,mBAGC,e9BglBsC,C8B/kBtC,eAAgB,CrBtEd,6BqBgFC,gMAGK,eAAgB,CAChB,cAAe,CAChB,CrBlGL,0BqB6FA,kBAoBI,oBAAqB,CACrB,0BAA2B,CArB9B,8BAwBK,kBAAmB,CAxBxB,6CA2BO,iBAAkB,CA3BzB,sJA+BO,mB9ByhB6B,C8BxhB7B,kB9BwhB6B,C8BxjBpC,gMAsCK,gBAAiB,CAtCtB,qCAqDK,gBAAiB,CArDtB,mCAyDK,uBAAwB,CAGxB,eAAgB,CA5DrB,kCAgEK,YAAa,CACd,CrBjJL,6BqBgFC,gMAGK,eAAgB,CAChB,cAAe,CAChB,CrBlGL,0BqB6FA,kBAoBI,oBAAqB,CACrB,0BAA2B,CArB9B,8BAwBK,kBAAmB,CAxBxB,6CA2BO,iBAAkB,CA3BzB,sJA+BO,mB9ByhB6B,C8BxhB7B,kB9BwhB6B,C8BxjBpC,gMAsCK,gBAAiB,CAtCtB,qCAqDK,gBAAiB,CArDtB,mCAyDK,uBAAwB,CAGxB,eAAgB,CA5DrB,kCAgEK,YAAa,CACd,CrBjJL,6BqBgFC,gMAGK,eAAgB,CAChB,cAAe,CAChB,CrBlGL,0BqB6FA,kBAoBI,oBAAqB,CACrB,0BAA2B,CArB9B,8BAwBK,kBAAmB,CAxBxB,6CA2BO,iBAAkB,CA3BzB,sJA+BO,mB9ByhB6B,C8BxhB7B,kB9BwhB6B,C8BxjBpC,gMAsCK,gBAAiB,CAtCtB,qCAqDK,gBAAiB,CArDtB,mCAyDK,uBAAwB,CAGxB,eAAgB,CA5DrB,kCAgEK,YAAa,CACd,CrBjJL,8BqBgFC,gMAGK,eAAgB,CAChB,cAAe,CAChB,CrBlGL,2BqB6FA,kBAoBI,oBAAqB,CACrB,0BAA2B,CArB9B,8BAwBK,kBAAmB,CAxBxB,6CA2BO,iBAAkB,CA3BzB,sJA+BO,mB9ByhB6B,C8BxhB7B,kB9BwhB6B,C8BxjBpC,gMAsCK,gBAAiB,CAtCtB,qCAqDK,gBAAiB,CArDtB,mCAyDK,uBAAwB,CAGxB,eAAgB,CA5DrB,kCAgEK,YAAa,CACd,CAtET,eAyBQ,oBAAqB,CACrB,0BAA2B,CA1BnC,8KAQU,eAAgB,CAChB,cAAe,CATzB,2BA6BU,kBAAmB,CA7B7B,0CAgCY,iBAAkB,CAhC9B,6IAoCY,mB9ByhB6B,C8BxhB7B,kB9BwhB6B,C8B7jBzC,8KA2CU,gBAAiB,CA3C3B,kCA0DU,gBAAiB,CA1D3B,gCA8DU,uBAAwB,CAGxB,eAAgB,CAjE1B,+BAqEU,YAAa,CACd,4BAcL,qB/BxNkC,CGApC,oE4B2NI,qB/B3NgC,CGGnC,0I4B8NG,qB/BjOgC,CGApC,wT4BoOM,qB/BpO8B,CGGnC,qK4BqOK,qB/BxO8B,C+BsNtC,snBA0BM,qB/BhPgC,C+BsNtC,8BA+BI,qB/BrPkC,C+BsPlC,4B/BtPkC,C+BsNtC,mCAoCI,+QhB7M8E,CgByKlF,2BAwCI,qB/B9PkC,C+BsNtC,6BA0CM,qB/BhQgC,CGApC,sE4BmQM,qB/BnQ8B,CGGnC,2B4ByQC,U/BtRkC,CGUpC,kE4B+QI,U/BzRgC,CGanC,uI4BkRG,2B/B/RgC,CGUpC,kT4BwRM,4B/BlS8B,CGanC,kK4ByRK,4B/BtS8B,C+BoRtC,0mBA0BM,U/B9SgC,C+BoRtC,6BA+BI,2B/BnTkC,C+BoTlC,kC/BpTkC,C+BoRtC,kCAoCI,qRhBjQ8E,CgB6NlF,0BAwCI,2B/B5TkC,C+BoRtC,4BA0CM,U/B9TgC,CGUpC,oE4BuTM,U/BjU8B,CGanC,M6BdD,iBAAkB,CAClB,YAAa,CACb,qBAAsB,CACtB,WAAY,CAEZ,oBAAqB,CACrB,qBhCLoC,CgCMpC,0BAA2B,CAC3B,wBhCLuC,CgCJzC,SAaI,cAAe,CACf,aAAc,CAdlB,kBAkBI,kBAAmB,CACnB,qBAAsB,CAnB1B,8BAsBM,kBAAmB,CAtBzB,6BA2BM,qBAAsB,CA3B5B,8DAoCI,YAAa,CACd,uBAMD,aAAc,CAGd,cAAe,CACf,e/BgxByC,C+B9wB1C,YAGC,oB/B0wBwC,C+BzwBzC,eAGC,mBAAgC,CAChC,eAAgB,CACjB,sBAGC,eAAgB,C7BrDhB,iB6B0DE,oBAAqB,C7B1DD,sB6B8DpB,mB/ByvBuC,C+BxvBxC,aAQD,sB/BgvByC,C+B/uBzC,eAAgB,CAEhB,wBhC/EuC,CgCgFvC,+BhC/EuC,CgCoFxC,aAGC,sB/BouByC,C+BluBzC,wBhC1FuC,CgC2FvC,4BhC1FuC,CgC+FxC,kBAQC,qBAAkC,CAClC,qB/BktBwC,C+BjtBxC,oBAAiC,CACjC,eAAgB,CACjB,mBAGC,qBAAkC,CAClC,oBAAiC,CAClC,kBAIC,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,e/B6sByC,C+B3sB1C,yCAKC,aAAc,CACd,UAAW,CACZ,iBAiBG,kB/BqrBuD,CSpxBvD,0BsB6FJ,WAMI,YAAa,CACb,kBAAmB,CACnB,kB/B+qBuD,C+B9qBvD,iB/B8qBuD,C+BvrB3D,iBAaM,WAAY,CACZ,iB/ByqBqD,C+BxqBrD,eAAgB,CAChB,gB/BuqBqD,C+BtqBtD,CASL,kBAII,kB/BypBuD,CSpxBvD,0BsBuHJ,YAQI,YAAa,CACb,kBAAmB,CATvB,kBAcM,WAAY,CACZ,eAAgB,CAftB,wBAkBQ,aAAc,CACd,aAAc,CACf,CA2CP,oBAEI,oB/B8kBsC,CStwBtC,0BsBsLJ,cAMI,c/B2lBiC,C+B1lBjC,kB/B2lBuC,C+B1lBvC,SAAU,CACV,QAAS,CATb,oBAYM,oBAAqB,CACrB,UAAW,CACZ,CASL,WACE,oBAAqB,CADvB,iBAII,eAAgB,CAJpB,oCAOM,eAAgB,CAPtB,8BAiBM,kB/B9C2B,C+B+C5B,YC1RH,YAAa,CACb,cAAe,CACf,mBhCmiCsC,CgCliCtC,oBjC0EsC,CiCxEtC,eAAgB,CAChB,qBjCsEoC,CiCpErC,kCAKG,kBhCyhCqC,CgC5hCzC,0CAMM,UAAW,CACX,mBhCqhCmC,CgCphCnC,ajCPmC,CiCQnC,WhC0hCuC,CgCniC7C,gDAoBI,yBAA0B,CApB9B,gDAwBI,oBAAqB,CAxBzB,wBA4BI,ajC3BqC,CiC4BtC,YCvCD,YAAa,C7BGb,cAAe,CACf,eAAgB,C6BDjB,wDAGC,iBAAkB,CAClB,aAAc,CACd,oBjCixBwC,CiChxBxC,gBjCkO+B,CiCjO/B,gBjCoxBsC,CiCnxBtC,UlCMuC,CkCJvC,qBlCRoC,CkCSpC,wBlCNuC,CkCHzC,0EAYI,SAAU,CACV,ajC8J8D,CiC7J9D,oBAAqB,CACrB,wBlCbqC,CkCcrC,oBlCbqC,CkCHzC,0EAoBI,SAAU,CACV,SjC4wBiC,CiC3wBjC,0ClCVqC,CkCWtC,oXAMG,aAAc,CAHpB,uUAcI,SAAU,CACV,UlCzCkC,CkC0ClC,qBlC9BqC,CkC+BrC,iBlC/BqC,CkCczC,yVAqBI,alCzCqC,CkC0CrC,mBAAoB,CAEpB,WAAY,CACZ,qBlCnDkC,CkCoDlC,oBlCjDqC,CmCNvC,gLACE,qBlC0xBsC,CC1mBpC,oBAAW,CiC9Kb,elCmO6B,CkCtO/B,gLACE,oBlCwxBqC,CCxmBnC,mBAAW,CiC9Kb,elCoO6B,CkCnO9B,OCDD,oBAAqB,CACrB,kBnC45BsC,CC/vBpC,aAAW,CkC3Jb,enCwR+B,CmCvR/B,aAAc,CACd,iBAAkB,CAClB,kBAAmB,CACnB,uBAAwB,ClBGpB,iIjBib6I,CiB7a7I,wCkBfN,OlBgBQ,eAAgB,CkBMvB,CjCXC,4BiCGI,oBAAqB,CjCAxB,aiCMC,YAAa,CACd,YAKD,iBAAkB,CAClB,QAAS,CACV,YAOC,kBnCi4BsC,CmCh4BtC,iBnCg4BsC,CmC93BvC,eC1CC,UrCKoC,CqCJpC,qBrCgBuC,CGFvC,4CkCVI,UrCAgC,CqCChC,qBAAkC,ClCYrC,4CkCPG,SAAU,CACV,yCrCKmC,CqCJpC,iBAbH,arCcuC,CqCbvC,wBrCOuC,CGOvC,gDkCVI,arCSmC,CqCRnC,wBAAkC,ClCYrC,gDkCPG,SAAU,CACV,4CrCJmC,CqCKpC,eAbH,UrCKoC,CqCJpC,wBrCuBuC,CGTvC,4CkCVI,UrCAgC,CqCChC,wBAAkC,ClCYrC,4CkCPG,SAAU,CACV,2CrCYmC,CqCXpC,YAbH,arCcuC,CqCbvC,wBrCyBuC,CGXvC,sCkCVI,arCSmC,CqCRnC,wBAAkC,ClCYrC,sCkCPG,SAAU,CACV,2CrCcmC,CqCbpC,eAbH,arCcuC,CqCbvC,qBrCsBuC,CGRvC,4CkCVI,arCSmC,CqCRnC,wBAAkC,ClCYrC,4CkCPG,SAAU,CACV,0CrCWmC,CqCVpC,cAbH,UrCKoC,CqCJpC,wBrCoBuC,CGNvC,0CkCVI,UrCAgC,CqCChC,wBAAkC,ClCYrC,0CkCPG,SAAU,CACV,4CrCSmC,CqCRpC,aAbH,arCcuC,CqCbvC,wBrCKuC,CGSvC,wCkCVI,arCSmC,CqCRnC,wBAAkC,ClCYrC,wCkCPG,SAAU,CACV,4CrCNmC,CqCOpC,YAbH,UrCKoC,CqCJpC,wBrCYuC,CGEvC,sCkCVI,UrCAgC,CqCChC,wBAAkC,ClCYrC,sCkCPG,SAAU,CACV,yCrCCmC,CqCApC,WCbH,iBAAqD,CACrD,kBrCyzBsC,CqCvzBtC,wBtCIuC,CUoDrC,0B4B5DJ,WAQI,iBrCmzBoC,CqCjzBvC,CAED,iBACE,eAAgB,CAChB,cAAe,CAEhB,OCXC,iBAAkB,CAClB,sBtCy9ByC,CsCx9BzC,kBtCy9BsC,CsCx9BtC,4BAA6C,CAE9C,eAKC,aAAc,CACf,YAIC,etC6Q+B,CsC5QhC,mBAQC,uBAAsD,CADxD,0BAKI,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,SAAU,CACV,sBtC07BuC,CsCz7BvC,aAAc,CACf,eCtCD,azBwGgE,CKnG9D,wBLmG8D,CyBtGhE,oBzBsGgE,CyBpGhE,kBACE,wBAAqC,CACtC,2BAGC,aAA0B,CAC3B,iBAVD,azBwGgE,CKnG9D,wBLmG8D,CyBtGhE,oBzBsGgE,CyBpGhE,oBACE,wBAAqC,CACtC,6BAGC,aAA0B,CAC3B,eAVD,azBwGgE,CKnG9D,wBLmG8D,CyBtGhE,oBzBsGgE,CyBpGhE,kBACE,wBAAqC,CACtC,2BAGC,aAA0B,CAC3B,YAVD,azBwGgE,CKnG9D,wBLmG8D,CyBtGhE,oBzBsGgE,CyBpGhE,eACE,wBAAqC,CACtC,wBAGC,aAA0B,CAC3B,eAVD,azBwGgE,CKnG9D,wBLmG8D,CyBtGhE,oBzBsGgE,CyBpGhE,kBACE,wBAAqC,CACtC,2BAGC,aAA0B,CAC3B,cAVD,azBwGgE,CKnG9D,wBLmG8D,CyBtGhE,oBzBsGgE,CyBpGhE,iBACE,wBAAqC,CACtC,0BAGC,aAA0B,CAC3B,aAVD,azBwGgE,CKnG9D,wBLmG8D,CyBtGhE,oBzBsGgE,CyBpGhE,gBACE,wBAAqC,CACtC,yBAGC,aAA0B,CAC3B,YAVD,azBwGgE,CKnG9D,wBLmG8D,CyBtGhE,oBzBsGgE,CyBpGhE,eACE,wBAAqC,CACtC,wBAGC,aAA0B,CAC3B,gCCRC,KAAO,0BAAuC,CAC9C,GAAK,uBAAwB,CAAA,CAIjC,UACE,YAAa,CACb,WxCk+BsC,CwCj+BtC,eAAgB,CAChB,aAAc,CvCwKV,mBAAW,CuCtKf,wBzCPuC,CyCUxC,cAGC,YAAa,CACb,qBAAsB,CACtB,sBAAuB,CACvB,eAAgB,CAChB,UzClBoC,CyCmBpC,iBAAkB,CAClB,kBAAmB,CACnB,qBzCTuC,CkBFnC,0BjBo+B4C,CiBh+B5C,wCuBDN,cvBEQ,eAAgB,CuBQvB,CAED,sBrBYE,2LAA6I,CqBV7I,yBxC28BsC,CwC18BvC,uBAIG,iDAA8D,CAG5D,wCAJJ,uBAKM,cAAe,CAGpB,CC7CH,OACE,YAAa,CACb,sBAAuB,CACxB,YAGC,MAAO,CACR,YCFC,YAAa,CACb,qBAAsB,CAGtB,cAAe,CACf,eAAgB,CAEjB,wBASC,UAAW,CACX,a3CTuC,C2CUvC,kBAAmB,CxCPnB,4DwCWE,SAAU,CACV,a3CfqC,C2CgBrC,oBAAqB,CACrB,wB3CvBqC,CGYtC,+BwCeC,a3CnBqC,C2CoBrC,wB3C3BqC,C2C4BtC,iBASD,iBAAkB,CAClB,aAAc,CACd,sB1Ci9ByC,C0C98BzC,qB3C5CoC,C2C6CpC,kC3CnCoC,C2C4BtC,oDAmBI,a3CnDqC,C2CoDrC,mBAAoB,CACpB,qB3C3DkC,C2CsCtC,wBA0BI,SAAU,CACV,U3CjEkC,C2CkElC,qB3CtDqC,C2CuDrC,iB3CvDqC,C2C0BzC,kCAiCI,kBAAmB,CAjCvB,yCAoCM,e1C4J2B,C0C3J3B,oB1C2J2B,C0C1J5B,uBAcC,kBAAmB,CADrB,+CAeM,YAAa,CAfnB,yDAmBM,oB1C0HuB,C0CzHvB,mBAAoB,CApB1B,gEAuBQ,gB1CsHqB,C0CrHrB,qB1CqHqB,CShL7B,0BiCmCA,0BACE,kBAAmB,CADrB,kDAeM,YAAa,CAfnB,4DAmBM,oB1C0HuB,C0CzHvB,mBAAoB,CApB1B,mEAuBQ,gB1CsHqB,C0CrHrB,qB1CqHqB,C0CpHtB,CjC5DP,0BiCmCA,0BACE,kBAAmB,CADrB,kDAeM,YAAa,CAfnB,4DAmBM,oB1C0HuB,C0CzHvB,mBAAoB,CApB1B,mEAuBQ,gB1CsHqB,C0CrHrB,qB1CqHqB,C0CpHtB,CjC5DP,0BiCmCA,0BACE,kBAAmB,CADrB,kDAeM,YAAa,CAfnB,4DAmBM,oB1C0HuB,C0CzHvB,mBAAoB,CApB1B,mEAuBQ,gB1CsHqB,C0CrHrB,qB1CqHqB,C0CpHtB,CjC5DP,2BiCmCA,0BACE,kBAAmB,CADrB,kDAeM,YAAa,CAfnB,4DAmBM,oB1C0HuB,C0CzHvB,mBAAoB,CApB1B,mEAuBQ,gB1CsHqB,C0CrHrB,qB1CqHqB,C0CpHtB,CAaX,mCAII,oB1CmG6B,C0CvGjC,8CAOM,qBAAsB,CCzI1B,yBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,4GyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,uDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,2BACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,gHyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,yDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,yBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,4GyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,uDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,sBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,sGyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,oDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,yBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,4GyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,uDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,wBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,0GyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,sDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,uBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,wGyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,qDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,sBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,sGyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,oDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BxF3D,OChBL,WAAY,C3CmLR,mBAAW,C2CjLf,e5C8R+B,C4C7R/B,aAAc,CACd,U7CWoC,C6CVpC,wB7CAoC,C6CCpC,UAAW,C1CKX,a0CDE,U7CKkC,C6CJlC,oBAAqB,C1CAD,sF0CKlB,WAAY,C1CEf,a0CUD,SAAU,CACV,4BAA6B,CAC7B,QAAS,CACV,iBAMC,mBAAoB,CACrB,OCpCC,gB7C24BuC,C6C14BvC,e7C04BuC,CC1tBnC,iBAAW,C4C7Kf,uC9CDoC,C8CEpC,2BAA4B,CAC5B,gC7C44BmD,C6C34BnD,4C9CMoC,C8CLpC,SAAU,CAXZ,wBAeI,oB7Cg4BsC,C6C/4B1C,eAmBI,SAAU,CAnBd,YAuBI,aAAc,CACd,SAAU,CAxBd,YA4BI,YAAa,CACd,cAID,YAAa,CACb,kBAAmB,CACnB,qB7C42BwC,C6C32BxC,a9CxBuC,C8CyBvC,uC9C/BoC,C8CgCpC,2BAA4B,CAC5B,wC7Co3BoD,C6Cl3BrD,YAGC,c7Cm2BwC,C6Cl2BzC,YCrCC,eAAgB,CAFlB,mBAKI,iBAAkB,CAClB,eAAgB,CACjB,OAKD,cAAe,CACf,KAAM,CACN,MAAO,CACP,Y9C4pBsC,C8C3pBtC,YAAa,CACb,UAAW,CACX,WAAY,CACZ,eAAgB,CAGhB,SAAU,CAIX,cAIC,iBAAkB,CAClB,UAAW,CACX,Y9Ci5BuC,C8C/4BvC,mBAAoB,CAGpB,0B7B3BI,kCjBs8BoD,C8Cz6BtD,6B9Cu6BmD,CiBh8BjD,wC6BuBJ,0B7BtBM,eAAgB,C6ByBrB,CACD,0BACE,c9Cq6BoC,C8Cp6BrC,kCAIC,qB9Ck6B2C,C8Cj6B5C,yBAID,YAAa,CACb,4BhCuF8D,CgCzFhE,wCAKI,6BhCoF4D,CgCnF5D,eAAgB,CANpB,8EAWI,aAAc,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\",\"sourcesContent\":[\"/*!\\n * CoreUI - Open Source Bootstrap Admin Template\\n * @version v1.0.6\\n * @link http://coreui.io\\n * Copyright (c) 2017 creativeLabs Łukasz Holeczek\\n * @license MIT\\n */\\n\\n// Override Boostrap variables\\n@import \\\"bootstrap-variables\\\";\\n\\n// Import Bootstrap source files\\n@import \\\"~bootstrap/scss/bootstrap\\\";\\n\\n// Override core variables\\n@import \\\"core-variables\\\";\\n\\n// Import core styles\\n@import \\\"core/core\\\";\\n\\n// Custom styles\\n@import \\\"custom\\\";\\n\",\"/*!\\n * Bootstrap v4.6.2 (https://getbootstrap.com/)\\n * Copyright 2011-2022 The Bootstrap Authors\\n * Copyright 2011-2022 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */\\n\\n@import \\\"functions\\\";\\n@import \\\"variables\\\";\\n@import \\\"mixins\\\";\\n@import \\\"root\\\";\\n@import \\\"reboot\\\";\\n@import \\\"type\\\";\\n@import \\\"images\\\";\\n@import \\\"code\\\";\\n@import \\\"grid\\\";\\n@import \\\"tables\\\";\\n@import \\\"forms\\\";\\n@import \\\"buttons\\\";\\n@import \\\"transitions\\\";\\n@import \\\"dropdown\\\";\\n@import \\\"button-group\\\";\\n@import \\\"input-group\\\";\\n@import \\\"custom-forms\\\";\\n@import \\\"nav\\\";\\n@import \\\"navbar\\\";\\n@import \\\"card\\\";\\n@import \\\"breadcrumb\\\";\\n@import \\\"pagination\\\";\\n@import \\\"badge\\\";\\n@import \\\"jumbotron\\\";\\n@import \\\"alert\\\";\\n@import \\\"progress\\\";\\n@import \\\"media\\\";\\n@import \\\"list-group\\\";\\n@import \\\"close\\\";\\n@import \\\"toasts\\\";\\n@import \\\"modal\\\";\\n@import \\\"tooltip\\\";\\n@import \\\"popover\\\";\\n@import \\\"carousel\\\";\\n@import \\\"spinners\\\";\\n@import \\\"utilities\\\";\\n@import \\\"print\\\";\\n\",\":root {\\n // Custom variable values only support SassScript inside `#{}`.\\n @each $color, $value in $colors {\\n --#{$color}: #{$value};\\n }\\n\\n @each $color, $value in $theme-colors {\\n --#{$color}: #{$value};\\n }\\n\\n @each $bp, $value in $grid-breakpoints {\\n --breakpoint-#{$bp}: #{$value};\\n }\\n\\n // Use `inspect` for lists so that quoted items keep the quotes.\\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\\n --font-family-monospace: #{inspect($font-family-monospace)};\\n}\\n\",\"// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\\n\\n// Reboot\\n//\\n// Normalization of HTML elements, manually forked from Normalize.css to remove\\n// styles targeting irrelevant browsers while applying new styles.\\n//\\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\\n\\n\\n// Document\\n//\\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\\n// 2. Change the default font family in all browsers.\\n// 3. Correct the line height in all browsers.\\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\\n// 5. Change the default tap highlight to be completely transparent in iOS.\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box; // 1\\n}\\n\\nhtml {\\n font-family: sans-serif; // 2\\n line-height: 1.15; // 3\\n -webkit-text-size-adjust: 100%; // 4\\n -webkit-tap-highlight-color: rgba($black, 0); // 5\\n}\\n\\n// Shim for \\\"new\\\" HTML5 structural elements to display correctly (IE10, older browsers)\\n// TODO: remove in v5\\n// stylelint-disable-next-line selector-list-comma-newline-after\\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\\n display: block;\\n}\\n\\n// Body\\n//\\n// 1. Remove the margin in all browsers.\\n// 2. As a best practice, apply a default `background-color`.\\n// 3. Set an explicit initial text-align value so that we can later use\\n// the `inherit` value on things like `<th>` elements.\\n\\nbody {\\n margin: 0; // 1\\n font-family: $font-family-base;\\n @include font-size($font-size-base);\\n font-weight: $font-weight-base;\\n line-height: $line-height-base;\\n color: $body-color;\\n text-align: left; // 3\\n background-color: $body-bg; // 2\\n}\\n\\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\\n// on elements that programmatically receive focus but wouldn't normally show a visible\\n// focus outline. In general, this would mean that the outline is only applied if the\\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\\n// wants focus outlines to always be presented.\\n//\\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\\n[tabindex=\\\"-1\\\"]:focus:not(:focus-visible) {\\n outline: 0 !important;\\n}\\n\\n\\n// Content grouping\\n//\\n// 1. Add the correct box sizing in Firefox.\\n// 2. Show the overflow in Edge and IE.\\n\\nhr {\\n box-sizing: content-box; // 1\\n height: 0; // 1\\n overflow: visible; // 2\\n}\\n\\n\\n//\\n// Typography\\n//\\n\\n// Remove top margins from headings\\n//\\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\\n// margin for easier control within type scales as it avoids margin collapsing.\\n// stylelint-disable-next-line selector-list-comma-newline-after\\nh1, h2, h3, h4, h5, h6 {\\n margin-top: 0;\\n margin-bottom: $headings-margin-bottom;\\n}\\n\\n// Reset margins on paragraphs\\n//\\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\\n// bottom margin to use `rem` units instead of `em`.\\np {\\n margin-top: 0;\\n margin-bottom: $paragraph-margin-bottom;\\n}\\n\\n// Abbreviations\\n//\\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\\n// 3. Add explicit cursor to indicate changed behavior.\\n// 4. Remove the bottom border in Firefox 39-.\\n// 5. Prevent the text-decoration to be skipped.\\n\\nabbr[title],\\nabbr[data-original-title] { // 1\\n text-decoration: underline; // 2\\n text-decoration: underline dotted; // 2\\n cursor: help; // 3\\n border-bottom: 0; // 4\\n text-decoration-skip-ink: none; // 5\\n}\\n\\naddress {\\n margin-bottom: 1rem;\\n font-style: normal;\\n line-height: inherit;\\n}\\n\\nol,\\nul,\\ndl {\\n margin-top: 0;\\n margin-bottom: 1rem;\\n}\\n\\nol ol,\\nul ul,\\nol ul,\\nul ol {\\n margin-bottom: 0;\\n}\\n\\ndt {\\n font-weight: $dt-font-weight;\\n}\\n\\ndd {\\n margin-bottom: .5rem;\\n margin-left: 0; // Undo browser default\\n}\\n\\nblockquote {\\n margin: 0 0 1rem;\\n}\\n\\nb,\\nstrong {\\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\\n}\\n\\nsmall {\\n @include font-size(80%); // Add the correct font size in all browsers\\n}\\n\\n//\\n// Prevent `sub` and `sup` elements from affecting the line height in\\n// all browsers.\\n//\\n\\nsub,\\nsup {\\n position: relative;\\n @include font-size(75%);\\n line-height: 0;\\n vertical-align: baseline;\\n}\\n\\nsub { bottom: -.25em; }\\nsup { top: -.5em; }\\n\\n\\n//\\n// Links\\n//\\n\\na {\\n color: $link-color;\\n text-decoration: $link-decoration;\\n background-color: transparent; // Remove the gray background on active links in IE 10.\\n\\n @include hover() {\\n color: $link-hover-color;\\n text-decoration: $link-hover-decoration;\\n }\\n}\\n\\n// And undo these styles for placeholder links/named anchors (without href).\\n// It would be more straightforward to just use a[href] in previous block, but that\\n// causes specificity issues in many other styles that are too complex to fix.\\n// See https://github.com/twbs/bootstrap/issues/19402\\n\\na:not([href]):not([class]) {\\n color: inherit;\\n text-decoration: none;\\n\\n @include hover() {\\n color: inherit;\\n text-decoration: none;\\n }\\n}\\n\\n\\n//\\n// Code\\n//\\n\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-family: $font-family-monospace;\\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\\n}\\n\\npre {\\n // Remove browser default top margin\\n margin-top: 0;\\n // Reset browser default of `1em` to use `rem`s\\n margin-bottom: 1rem;\\n // Don't allow content to break outside\\n overflow: auto;\\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\\n // making it impossible to interact with the content\\n -ms-overflow-style: scrollbar;\\n}\\n\\n\\n//\\n// Figures\\n//\\n\\nfigure {\\n // Apply a consistent margin strategy (matches our type styles).\\n margin: 0 0 1rem;\\n}\\n\\n\\n//\\n// Images and content\\n//\\n\\nimg {\\n vertical-align: middle;\\n border-style: none; // Remove the border on images inside links in IE 10-.\\n}\\n\\nsvg {\\n // Workaround for the SVG overflow bug in IE10/11 is still required.\\n // See https://github.com/twbs/bootstrap/issues/26878\\n overflow: hidden;\\n vertical-align: middle;\\n}\\n\\n\\n//\\n// Tables\\n//\\n\\ntable {\\n border-collapse: collapse; // Prevent double borders\\n}\\n\\ncaption {\\n padding-top: $table-cell-padding;\\n padding-bottom: $table-cell-padding;\\n color: $table-caption-color;\\n text-align: left;\\n caption-side: bottom;\\n}\\n\\n// 1. Removes font-weight bold by inheriting\\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\\n// 3. Fix alignment for Safari\\n\\nth {\\n font-weight: $table-th-font-weight; // 1\\n text-align: inherit; // 2\\n text-align: -webkit-match-parent; // 3\\n}\\n\\n\\n//\\n// Forms\\n//\\n\\nlabel {\\n // Allow labels to use `margin` for spacing.\\n display: inline-block;\\n margin-bottom: $label-margin-bottom;\\n}\\n\\n// Remove the default `border-radius` that macOS Chrome adds.\\n//\\n// Details at https://github.com/twbs/bootstrap/issues/24093\\nbutton {\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: 0;\\n}\\n\\n// Explicitly remove focus outline in Chromium when it shouldn't be\\n// visible (e.g. as result of mouse click or touch tap). It already\\n// should be doing this automatically, but seems to currently be\\n// confused and applies its very visible two-tone outline anyway.\\n\\nbutton:focus:not(:focus-visible) {\\n outline: 0;\\n}\\n\\ninput,\\nbutton,\\nselect,\\noptgroup,\\ntextarea {\\n margin: 0; // Remove the margin in Firefox and Safari\\n font-family: inherit;\\n @include font-size(inherit);\\n line-height: inherit;\\n}\\n\\nbutton,\\ninput {\\n overflow: visible; // Show the overflow in Edge\\n}\\n\\nbutton,\\nselect {\\n text-transform: none; // Remove the inheritance of text transform in Firefox\\n}\\n\\n// Set the cursor for non-`<button>` buttons\\n//\\n// Details at https://github.com/twbs/bootstrap/pull/30562\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n\\n// Remove the inheritance of word-wrap in Safari.\\n//\\n// Details at https://github.com/twbs/bootstrap/issues/24990\\nselect {\\n word-wrap: normal;\\n}\\n\\n\\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\\n// controls in Android 4.\\n// 2. Correct the inability to style clickable types in iOS and Safari.\\nbutton,\\n[type=\\\"button\\\"], // 1\\n[type=\\\"reset\\\"],\\n[type=\\\"submit\\\"] {\\n -webkit-appearance: button; // 2\\n}\\n\\n// Opinionated: add \\\"hand\\\" cursor to non-disabled button elements.\\n@if $enable-pointer-cursor-for-buttons {\\n button,\\n [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"] {\\n &:not(:disabled) {\\n cursor: pointer;\\n }\\n }\\n}\\n\\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\\nbutton::-moz-focus-inner,\\n[type=\\\"button\\\"]::-moz-focus-inner,\\n[type=\\\"reset\\\"]::-moz-focus-inner,\\n[type=\\\"submit\\\"]::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n}\\n\\ninput[type=\\\"radio\\\"],\\ninput[type=\\\"checkbox\\\"] {\\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\\n padding: 0; // 2. Remove the padding in IE 10-\\n}\\n\\n\\ntextarea {\\n overflow: auto; // Remove the default vertical scrollbar in IE.\\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\\n resize: vertical;\\n}\\n\\nfieldset {\\n // Browsers set a default `min-width: min-content;` on fieldsets,\\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\\n // So we reset that to ensure fieldsets behave more like a standard block element.\\n // See https://github.com/twbs/bootstrap/issues/12359\\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\\n min-width: 0;\\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\\n padding: 0;\\n margin: 0;\\n border: 0;\\n}\\n\\n// 1. Correct the text wrapping in Edge and IE.\\n// 2. Correct the color inheritance from `fieldset` elements in IE.\\nlegend {\\n display: block;\\n width: 100%;\\n max-width: 100%; // 1\\n padding: 0;\\n margin-bottom: .5rem;\\n @include font-size(1.5rem);\\n line-height: inherit;\\n color: inherit; // 2\\n white-space: normal; // 1\\n}\\n\\nprogress {\\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\\n}\\n\\n// Correct the cursor style of increment and decrement buttons in Chrome.\\n[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n[type=\\\"search\\\"] {\\n // This overrides the extra rounded corners on search inputs in iOS so that our\\n // `.form-control` class can properly style them. Note that this cannot simply\\n // be added to `.form-control` as it's not specific enough. For details, see\\n // https://github.com/twbs/bootstrap/issues/11586.\\n outline-offset: -2px; // 2. Correct the outline style in Safari.\\n -webkit-appearance: none;\\n}\\n\\n//\\n// Remove the inner padding in Chrome and Safari on macOS.\\n//\\n\\n[type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n//\\n// 1. Correct the inability to style clickable types in iOS and Safari.\\n// 2. Change font properties to `inherit` in Safari.\\n//\\n\\n::-webkit-file-upload-button {\\n font: inherit; // 2\\n -webkit-appearance: button; // 1\\n}\\n\\n//\\n// Correct element displays\\n//\\n\\noutput {\\n display: inline-block;\\n}\\n\\nsummary {\\n display: list-item; // Add the correct display in all browsers\\n cursor: pointer;\\n}\\n\\ntemplate {\\n display: none; // Add the correct display in IE\\n}\\n\\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\\n// Needed for proper display in IE 10-.\\n[hidden] {\\n display: none !important;\\n}\\n\",\"// Bootstrap overrides\\n\\n//\\n// Color system\\n//\\n\\n$white: #fff;\\n$gray-100: #f0f3f5;\\n$gray-200: #c2cfd6;\\n$gray-300: #a4b7c1;\\n$gray-400: #869fac;\\n$gray-500: #678898;\\n$gray-600: #536c79;\\n$gray-700: #3e515b;\\n$gray-800: #29363d;\\n$gray-900: #151b1e;\\n$black: #000 !default;\\n\\n$blue: #003399;\\n$indigo: #6610f2 !default;\\n$purple: #6f42c1 !default;\\n$pink: #e83e8c !default;\\n$red: #f86c6b;\\n$orange: #f8cb00;\\n$yellow: #FFCC00 !default;\\n$green: #4dbd74;\\n$teal: #20c997 !default;\\n$cyan: #63c2de;\\n\\n$colors: (\\n blue: $blue,\\n indigo: $indigo,\\n purple: $purple,\\n pink: $pink,\\n red: $red,\\n orange: $orange,\\n yellow: $yellow,\\n green: $green,\\n teal: $teal,\\n cyan: $cyan,\\n white: $white,\\n gray: $gray-600,\\n gray-dark: $gray-800\\n);\\n\\n$theme-colors: (\\n primary: $blue,\\n secondary: $gray-300,\\n success: $green,\\n info: $cyan,\\n warning: $yellow,\\n danger: $red,\\n light: $gray-100,\\n dark: $gray-800\\n);\\n\\n// Options\\n//\\n// Quickly modify global styling by enabling or disabling optional features.\\n\\n$enable-transitions: true;\\n$enable-rounded: false;\\n\\n// Body\\n//\\n// Settings for the `<body>` element.\\n\\n$body-bg: #e4e5e6;\\n\\n// Typography\\n//\\n// Font, line-height, and color for body text, headings, and more.\\n\\n$font-size-base: 0.875rem;\\n\\n// Breadcrumbs\\n\\n$breadcrumb-bg: #fff;\\n$breadcrumb-margin-bottom: 1.5rem;\\n\\n// Cards\\n\\n$card-border-color: $gray-200;\\n$card-cap-bg: $gray-100;\\n\\n// Dropdowns\\n\\n$dropdown-padding-y: 0;\\n$dropdown-border-color: $gray-200;\\n$dropdown-divider-bg: $gray-100;\\n\\n// Buttons\\n\\n$btn-secondary-border: $gray-300;\\n\\n// Progress bars\\n\\n$progress-bg: $gray-100;\\n\\n// Tables\\n\\n$table-bg-accent: $gray-100;\\n$table-bg-hover: $gray-100;\\n\\n// Forms\\n\\n$input-group-addon-bg: $gray-100;\\n$input-border-color: $gray-200;\\n$input-group-addon-border-color: $gray-200;\\n\",\"// Variables\\n//\\n// Variables should follow the `$component-state-property-size` formula for\\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\\n\\n// Color system\\n\\n$white: #fff !default;\\n$gray-100: #f8f9fa !default;\\n$gray-200: #e9ecef !default;\\n$gray-300: #dee2e6 !default;\\n$gray-400: #ced4da !default;\\n$gray-500: #adb5bd !default;\\n$gray-600: #6c757d !default;\\n$gray-700: #495057 !default;\\n$gray-800: #343a40 !default;\\n$gray-900: #212529 !default;\\n$black: #000 !default;\\n\\n$grays: () !default;\\n$grays: map-merge(\\n (\\n \\\"100\\\": $gray-100,\\n \\\"200\\\": $gray-200,\\n \\\"300\\\": $gray-300,\\n \\\"400\\\": $gray-400,\\n \\\"500\\\": $gray-500,\\n \\\"600\\\": $gray-600,\\n \\\"700\\\": $gray-700,\\n \\\"800\\\": $gray-800,\\n \\\"900\\\": $gray-900\\n ),\\n $grays\\n);\\n\\n$blue: #007bff !default;\\n$indigo: #6610f2 !default;\\n$purple: #6f42c1 !default;\\n$pink: #e83e8c !default;\\n$red: #dc3545 !default;\\n$orange: #fd7e14 !default;\\n$yellow: #ffc107 !default;\\n$green: #28a745 !default;\\n$teal: #20c997 !default;\\n$cyan: #17a2b8 !default;\\n\\n$colors: () !default;\\n$colors: map-merge(\\n (\\n \\\"blue\\\": $blue,\\n \\\"indigo\\\": $indigo,\\n \\\"purple\\\": $purple,\\n \\\"pink\\\": $pink,\\n \\\"red\\\": $red,\\n \\\"orange\\\": $orange,\\n \\\"yellow\\\": $yellow,\\n \\\"green\\\": $green,\\n \\\"teal\\\": $teal,\\n \\\"cyan\\\": $cyan,\\n \\\"white\\\": $white,\\n \\\"gray\\\": $gray-600,\\n \\\"gray-dark\\\": $gray-800\\n ),\\n $colors\\n);\\n\\n$primary: $blue !default;\\n$secondary: $gray-600 !default;\\n$success: $green !default;\\n$info: $cyan !default;\\n$warning: $yellow !default;\\n$danger: $red !default;\\n$light: $gray-100 !default;\\n$dark: $gray-800 !default;\\n\\n$theme-colors: () !default;\\n$theme-colors: map-merge(\\n (\\n \\\"primary\\\": $primary,\\n \\\"secondary\\\": $secondary,\\n \\\"success\\\": $success,\\n \\\"info\\\": $info,\\n \\\"warning\\\": $warning,\\n \\\"danger\\\": $danger,\\n \\\"light\\\": $light,\\n \\\"dark\\\": $dark\\n ),\\n $theme-colors\\n);\\n\\n// Set a specific jump point for requesting color jumps\\n$theme-color-interval: 8% !default;\\n\\n// The yiq lightness value that determines when the lightness of color changes from \\\"dark\\\" to \\\"light\\\". Acceptable values are between 0 and 255.\\n$yiq-contrasted-threshold: 150 !default;\\n\\n// Customize the light and dark text colors for use in our YIQ color contrast function.\\n$yiq-text-dark: $gray-900 !default;\\n$yiq-text-light: $white !default;\\n\\n// Characters which are escaped by the escape-svg function\\n$escaped-characters: (\\n (\\\"<\\\", \\\"%3c\\\"),\\n (\\\">\\\", \\\"%3e\\\"),\\n (\\\"#\\\", \\\"%23\\\"),\\n (\\\"(\\\", \\\"%28\\\"),\\n (\\\")\\\", \\\"%29\\\"),\\n) !default;\\n\\n\\n// Options\\n//\\n// Quickly modify global styling by enabling or disabling optional features.\\n\\n$enable-caret: true !default;\\n$enable-rounded: true !default;\\n$enable-shadows: false !default;\\n$enable-gradients: false !default;\\n$enable-transitions: true !default;\\n$enable-prefers-reduced-motion-media-query: true !default;\\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\\n$enable-grid-classes: true !default;\\n$enable-pointer-cursor-for-buttons: true !default;\\n$enable-print-styles: true !default;\\n$enable-responsive-font-sizes: false !default;\\n$enable-validation-icons: true !default;\\n$enable-deprecation-messages: true !default;\\n\\n\\n// Spacing\\n//\\n// Control the default styling of most Bootstrap elements by modifying these\\n// variables. Mostly focused on spacing.\\n// You can add more entries to the $spacers map, should you need more variation.\\n\\n$spacer: 1rem !default;\\n$spacers: () !default;\\n$spacers: map-merge(\\n (\\n 0: 0,\\n 1: ($spacer * .25),\\n 2: ($spacer * .5),\\n 3: $spacer,\\n 4: ($spacer * 1.5),\\n 5: ($spacer * 3)\\n ),\\n $spacers\\n);\\n\\n// This variable affects the `.h-*` and `.w-*` classes.\\n$sizes: () !default;\\n$sizes: map-merge(\\n (\\n 25: 25%,\\n 50: 50%,\\n 75: 75%,\\n 100: 100%,\\n auto: auto\\n ),\\n $sizes\\n);\\n\\n\\n// Body\\n//\\n// Settings for the `<body>` element.\\n\\n$body-bg: $white !default;\\n$body-color: $gray-900 !default;\\n\\n\\n// Links\\n//\\n// Style anchor elements.\\n\\n$link-color: theme-color(\\\"primary\\\") !default;\\n$link-decoration: none !default;\\n$link-hover-color: darken($link-color, 15%) !default;\\n$link-hover-decoration: underline !default;\\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\\n$emphasized-link-hover-darken-percentage: 15% !default;\\n\\n// Paragraphs\\n//\\n// Style p element.\\n\\n$paragraph-margin-bottom: 1rem !default;\\n\\n\\n// Grid breakpoints\\n//\\n// Define the minimum dimensions at which your layout will change,\\n// adapting to different screen sizes, for use in media queries.\\n\\n$grid-breakpoints: (\\n xs: 0,\\n sm: 576px,\\n md: 768px,\\n lg: 992px,\\n xl: 1200px\\n) !default;\\n\\n@include _assert-ascending($grid-breakpoints, \\\"$grid-breakpoints\\\");\\n@include _assert-starts-at-zero($grid-breakpoints, \\\"$grid-breakpoints\\\");\\n\\n\\n// Grid containers\\n//\\n// Define the maximum width of `.container` for different screen sizes.\\n\\n$container-max-widths: (\\n sm: 540px,\\n md: 720px,\\n lg: 960px,\\n xl: 1140px\\n) !default;\\n\\n@include _assert-ascending($container-max-widths, \\\"$container-max-widths\\\");\\n\\n\\n// Grid columns\\n//\\n// Set the number of columns and specify the width of the gutters.\\n\\n$grid-columns: 12 !default;\\n$grid-gutter-width: 30px !default;\\n$grid-row-columns: 6 !default;\\n\\n\\n// Components\\n//\\n// Define common padding and border radius sizes and more.\\n\\n$line-height-lg: 1.5 !default;\\n$line-height-sm: 1.5 !default;\\n\\n$border-width: 1px !default;\\n$border-color: $gray-300 !default;\\n\\n$border-radius: .25rem !default;\\n$border-radius-lg: .3rem !default;\\n$border-radius-sm: .2rem !default;\\n\\n$rounded-pill: 50rem !default;\\n\\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\\n\\n$component-active-color: $white !default;\\n$component-active-bg: theme-color(\\\"primary\\\") !default;\\n\\n$caret-width: .3em !default;\\n$caret-vertical-align: $caret-width * .85 !default;\\n$caret-spacing: $caret-width * .85 !default;\\n\\n$transition-base: all .2s ease-in-out !default;\\n$transition-fade: opacity .15s linear !default;\\n$transition-collapse: height .35s ease !default;\\n$transition-collapse-width: width .35s ease !default;\\n\\n$embed-responsive-aspect-ratios: () !default;\\n$embed-responsive-aspect-ratios: join(\\n (\\n (21 9),\\n (16 9),\\n (4 3),\\n (1 1),\\n ),\\n $embed-responsive-aspect-ratios\\n);\\n\\n// Typography\\n//\\n// Font, line-height, and color for body text, headings, and more.\\n\\n// stylelint-disable value-keyword-case\\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", \\\"Liberation Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\" !default;\\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace !default;\\n$font-family-base: $font-family-sans-serif !default;\\n// stylelint-enable value-keyword-case\\n\\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\\n$font-size-lg: $font-size-base * 1.25 !default;\\n$font-size-sm: $font-size-base * .875 !default;\\n\\n$font-weight-lighter: lighter !default;\\n$font-weight-light: 300 !default;\\n$font-weight-normal: 400 !default;\\n$font-weight-bold: 700 !default;\\n$font-weight-bolder: bolder !default;\\n\\n$font-weight-base: $font-weight-normal !default;\\n$line-height-base: 1.5 !default;\\n\\n$h1-font-size: $font-size-base * 2.5 !default;\\n$h2-font-size: $font-size-base * 2 !default;\\n$h3-font-size: $font-size-base * 1.75 !default;\\n$h4-font-size: $font-size-base * 1.5 !default;\\n$h5-font-size: $font-size-base * 1.25 !default;\\n$h6-font-size: $font-size-base !default;\\n\\n$headings-margin-bottom: $spacer * .5 !default;\\n$headings-font-family: null !default;\\n$headings-font-weight: 500 !default;\\n$headings-line-height: 1.2 !default;\\n$headings-color: null !default;\\n\\n$display1-size: 6rem !default;\\n$display2-size: 5.5rem !default;\\n$display3-size: 4.5rem !default;\\n$display4-size: 3.5rem !default;\\n\\n$display1-weight: 300 !default;\\n$display2-weight: 300 !default;\\n$display3-weight: 300 !default;\\n$display4-weight: 300 !default;\\n$display-line-height: $headings-line-height !default;\\n\\n$lead-font-size: $font-size-base * 1.25 !default;\\n$lead-font-weight: 300 !default;\\n\\n$small-font-size: .875em !default;\\n\\n$text-muted: $gray-600 !default;\\n\\n$blockquote-small-color: $gray-600 !default;\\n$blockquote-small-font-size: $small-font-size !default;\\n$blockquote-font-size: $font-size-base * 1.25 !default;\\n\\n$hr-border-color: rgba($black, .1) !default;\\n$hr-border-width: $border-width !default;\\n\\n$mark-padding: .2em !default;\\n\\n$dt-font-weight: $font-weight-bold !default;\\n\\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\\n$nested-kbd-font-weight: $font-weight-bold !default;\\n\\n$list-inline-padding: .5rem !default;\\n\\n$mark-bg: #fcf8e3 !default;\\n\\n$hr-margin-y: $spacer !default;\\n\\n\\n// Tables\\n//\\n// Customizes the `.table` component with basic values, each used across all table variations.\\n\\n$table-cell-padding: .75rem !default;\\n$table-cell-padding-sm: .3rem !default;\\n\\n$table-color: $body-color !default;\\n$table-bg: null !default;\\n$table-accent-bg: rgba($black, .05) !default;\\n$table-hover-color: $table-color !default;\\n$table-hover-bg: rgba($black, .075) !default;\\n$table-active-bg: $table-hover-bg !default;\\n\\n$table-border-width: $border-width !default;\\n$table-border-color: $border-color !default;\\n\\n$table-head-bg: $gray-200 !default;\\n$table-head-color: $gray-700 !default;\\n$table-th-font-weight: null !default;\\n\\n$table-dark-color: $white !default;\\n$table-dark-bg: $gray-800 !default;\\n$table-dark-accent-bg: rgba($white, .05) !default;\\n$table-dark-hover-color: $table-dark-color !default;\\n$table-dark-hover-bg: rgba($white, .075) !default;\\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\\n\\n$table-striped-order: odd !default;\\n\\n$table-caption-color: $text-muted !default;\\n\\n$table-bg-level: -9 !default;\\n$table-border-level: -6 !default;\\n\\n\\n// Buttons + Forms\\n//\\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\\n\\n$input-btn-padding-y: .375rem !default;\\n$input-btn-padding-x: .75rem !default;\\n$input-btn-font-family: null !default;\\n$input-btn-font-size: $font-size-base !default;\\n$input-btn-line-height: $line-height-base !default;\\n\\n$input-btn-focus-width: .2rem !default;\\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\\n\\n$input-btn-padding-y-sm: .25rem !default;\\n$input-btn-padding-x-sm: .5rem !default;\\n$input-btn-font-size-sm: $font-size-sm !default;\\n$input-btn-line-height-sm: $line-height-sm !default;\\n\\n$input-btn-padding-y-lg: .5rem !default;\\n$input-btn-padding-x-lg: 1rem !default;\\n$input-btn-font-size-lg: $font-size-lg !default;\\n$input-btn-line-height-lg: $line-height-lg !default;\\n\\n$input-btn-border-width: $border-width !default;\\n\\n\\n// Buttons\\n//\\n// For each of Bootstrap's buttons, define text, background, and border color.\\n\\n$btn-padding-y: $input-btn-padding-y !default;\\n$btn-padding-x: $input-btn-padding-x !default;\\n$btn-font-family: $input-btn-font-family !default;\\n$btn-font-size: $input-btn-font-size !default;\\n$btn-line-height: $input-btn-line-height !default;\\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\\n\\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\\n$btn-font-size-sm: $input-btn-font-size-sm !default;\\n$btn-line-height-sm: $input-btn-line-height-sm !default;\\n\\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\\n$btn-font-size-lg: $input-btn-font-size-lg !default;\\n$btn-line-height-lg: $input-btn-line-height-lg !default;\\n\\n$btn-border-width: $input-btn-border-width !default;\\n\\n$btn-font-weight: $font-weight-normal !default;\\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\\n$btn-focus-width: $input-btn-focus-width !default;\\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\\n$btn-disabled-opacity: .65 !default;\\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\\n\\n$btn-link-disabled-color: $gray-600 !default;\\n\\n$btn-block-spacing-y: .5rem !default;\\n\\n// Allows for customizing button radius independently from global border radius\\n$btn-border-radius: $border-radius !default;\\n$btn-border-radius-lg: $border-radius-lg !default;\\n$btn-border-radius-sm: $border-radius-sm !default;\\n\\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\\n\\n\\n// Forms\\n\\n$label-margin-bottom: .5rem !default;\\n\\n$input-padding-y: $input-btn-padding-y !default;\\n$input-padding-x: $input-btn-padding-x !default;\\n$input-font-family: $input-btn-font-family !default;\\n$input-font-size: $input-btn-font-size !default;\\n$input-font-weight: $font-weight-base !default;\\n$input-line-height: $input-btn-line-height !default;\\n\\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\\n$input-font-size-sm: $input-btn-font-size-sm !default;\\n$input-line-height-sm: $input-btn-line-height-sm !default;\\n\\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\\n$input-font-size-lg: $input-btn-font-size-lg !default;\\n$input-line-height-lg: $input-btn-line-height-lg !default;\\n\\n$input-bg: $white !default;\\n$input-disabled-bg: $gray-200 !default;\\n\\n$input-color: $gray-700 !default;\\n$input-border-color: $gray-400 !default;\\n$input-border-width: $input-btn-border-width !default;\\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\\n\\n$input-border-radius: $border-radius !default;\\n$input-border-radius-lg: $border-radius-lg !default;\\n$input-border-radius-sm: $border-radius-sm !default;\\n\\n$input-focus-bg: $input-bg !default;\\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\\n$input-focus-color: $input-color !default;\\n$input-focus-width: $input-btn-focus-width !default;\\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\\n\\n$input-placeholder-color: $gray-600 !default;\\n$input-plaintext-color: $body-color !default;\\n\\n$input-height-border: $input-border-width * 2 !default;\\n\\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\\n\\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\\n\\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\\n\\n$form-text-margin-top: .25rem !default;\\n\\n$form-check-input-gutter: 1.25rem !default;\\n$form-check-input-margin-y: .3rem !default;\\n$form-check-input-margin-x: .25rem !default;\\n\\n$form-check-inline-margin-x: .75rem !default;\\n$form-check-inline-input-margin-x: .3125rem !default;\\n\\n$form-grid-gutter-width: 10px !default;\\n$form-group-margin-bottom: 1rem !default;\\n\\n$input-group-addon-color: $input-color !default;\\n$input-group-addon-bg: $gray-200 !default;\\n$input-group-addon-border-color: $input-border-color !default;\\n\\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\\n\\n$custom-control-gutter: .5rem !default;\\n$custom-control-spacer-x: 1rem !default;\\n$custom-control-cursor: null !default;\\n\\n$custom-control-indicator-size: 1rem !default;\\n$custom-control-indicator-bg: $input-bg !default;\\n\\n$custom-control-indicator-bg-size: 50% 50% !default;\\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\\n$custom-control-indicator-border-color: $gray-500 !default;\\n$custom-control-indicator-border-width: $input-border-width !default;\\n\\n$custom-control-label-color: null !default;\\n\\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\\n$custom-control-label-disabled-color: $gray-600 !default;\\n\\n$custom-control-indicator-checked-color: $component-active-color !default;\\n$custom-control-indicator-checked-bg: $component-active-bg !default;\\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\\\"primary\\\"), .5) !default;\\n$custom-control-indicator-checked-box-shadow: null !default;\\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\\n\\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\\n\\n$custom-control-indicator-active-color: $component-active-color !default;\\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\\n$custom-control-indicator-active-box-shadow: null !default;\\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\\n\\n$custom-checkbox-indicator-border-radius: $border-radius !default;\\n$custom-checkbox-indicator-icon-checked: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\\\") !default;\\n\\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\\n$custom-checkbox-indicator-icon-indeterminate: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\\\") !default;\\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\\n\\n$custom-radio-indicator-border-radius: 50% !default;\\n$custom-radio-indicator-icon-checked: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\\\") !default;\\n\\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\\n$custom-switch-indicator-border-radius: $custom-control-indicator-size * .5 !default;\\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\\n\\n$custom-select-padding-y: $input-padding-y !default;\\n$custom-select-padding-x: $input-padding-x !default;\\n$custom-select-font-family: $input-font-family !default;\\n$custom-select-font-size: $input-font-size !default;\\n$custom-select-height: $input-height !default;\\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\\n$custom-select-font-weight: $input-font-weight !default;\\n$custom-select-line-height: $input-line-height !default;\\n$custom-select-color: $input-color !default;\\n$custom-select-disabled-color: $gray-600 !default;\\n$custom-select-bg: $input-bg !default;\\n$custom-select-disabled-bg: $gray-200 !default;\\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\\n$custom-select-indicator-color: $gray-800 !default;\\n$custom-select-indicator: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\\\") !default;\\n$custom-select-background: escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\\n\\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\\n\\n$custom-select-border-width: $input-border-width !default;\\n$custom-select-border-color: $input-border-color !default;\\n$custom-select-border-radius: $border-radius !default;\\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\\n\\n$custom-select-focus-border-color: $input-focus-border-color !default;\\n$custom-select-focus-width: $input-focus-width !default;\\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\\n\\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\\n$custom-select-font-size-sm: $input-font-size-sm !default;\\n$custom-select-height-sm: $input-height-sm !default;\\n\\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\\n$custom-select-font-size-lg: $input-font-size-lg !default;\\n$custom-select-height-lg: $input-height-lg !default;\\n\\n$custom-range-track-width: 100% !default;\\n$custom-range-track-height: .5rem !default;\\n$custom-range-track-cursor: pointer !default;\\n$custom-range-track-bg: $gray-300 !default;\\n$custom-range-track-border-radius: 1rem !default;\\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\\n\\n$custom-range-thumb-width: 1rem !default;\\n$custom-range-thumb-height: $custom-range-thumb-width !default;\\n$custom-range-thumb-bg: $component-active-bg !default;\\n$custom-range-thumb-border: 0 !default;\\n$custom-range-thumb-border-radius: 1rem !default;\\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\\n$custom-range-thumb-disabled-bg: $gray-500 !default;\\n\\n$custom-file-height: $input-height !default;\\n$custom-file-height-inner: $input-height-inner !default;\\n$custom-file-focus-border-color: $input-focus-border-color !default;\\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\\n$custom-file-disabled-bg: $input-disabled-bg !default;\\n\\n$custom-file-padding-y: $input-padding-y !default;\\n$custom-file-padding-x: $input-padding-x !default;\\n$custom-file-line-height: $input-line-height !default;\\n$custom-file-font-family: $input-font-family !default;\\n$custom-file-font-weight: $input-font-weight !default;\\n$custom-file-color: $input-color !default;\\n$custom-file-bg: $input-bg !default;\\n$custom-file-border-width: $input-border-width !default;\\n$custom-file-border-color: $input-border-color !default;\\n$custom-file-border-radius: $input-border-radius !default;\\n$custom-file-box-shadow: $input-box-shadow !default;\\n$custom-file-button-color: $custom-file-color !default;\\n$custom-file-button-bg: $input-group-addon-bg !default;\\n$custom-file-text: (\\n en: \\\"Browse\\\"\\n) !default;\\n\\n\\n// Form validation\\n\\n$form-feedback-margin-top: $form-text-margin-top !default;\\n$form-feedback-font-size: $small-font-size !default;\\n$form-feedback-valid-color: theme-color(\\\"success\\\") !default;\\n$form-feedback-invalid-color: theme-color(\\\"danger\\\") !default;\\n\\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\\n$form-feedback-icon-valid: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\\\") !default;\\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\\n$form-feedback-icon-invalid: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\\\") !default;\\n\\n$form-validation-states: () !default;\\n$form-validation-states: map-merge(\\n (\\n \\\"valid\\\": (\\n \\\"color\\\": $form-feedback-valid-color,\\n \\\"icon\\\": $form-feedback-icon-valid\\n ),\\n \\\"invalid\\\": (\\n \\\"color\\\": $form-feedback-invalid-color,\\n \\\"icon\\\": $form-feedback-icon-invalid\\n ),\\n ),\\n $form-validation-states\\n);\\n\\n// Z-index master list\\n//\\n// Warning: Avoid customizing these values. They're used for a bird's eye view\\n// of components dependent on the z-axis and are designed to all work together.\\n\\n$zindex-dropdown: 1000 !default;\\n$zindex-sticky: 1020 !default;\\n$zindex-fixed: 1030 !default;\\n$zindex-modal-backdrop: 1040 !default;\\n$zindex-modal: 1050 !default;\\n$zindex-popover: 1060 !default;\\n$zindex-tooltip: 1070 !default;\\n\\n\\n// Navs\\n\\n$nav-link-padding-y: .5rem !default;\\n$nav-link-padding-x: 1rem !default;\\n$nav-link-disabled-color: $gray-600 !default;\\n\\n$nav-tabs-border-color: $gray-300 !default;\\n$nav-tabs-border-width: $border-width !default;\\n$nav-tabs-border-radius: $border-radius !default;\\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\\n$nav-tabs-link-active-color: $gray-700 !default;\\n$nav-tabs-link-active-bg: $body-bg !default;\\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\\n\\n$nav-pills-border-radius: $border-radius !default;\\n$nav-pills-link-active-color: $component-active-color !default;\\n$nav-pills-link-active-bg: $component-active-bg !default;\\n\\n$nav-divider-color: $gray-200 !default;\\n$nav-divider-margin-y: $spacer * .5 !default;\\n\\n\\n// Navbar\\n\\n$navbar-padding-y: $spacer * .5 !default;\\n$navbar-padding-x: $spacer !default;\\n\\n$navbar-nav-link-padding-x: .5rem !default;\\n\\n$navbar-brand-font-size: $font-size-lg !default;\\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\\n\\n$navbar-toggler-padding-y: .25rem !default;\\n$navbar-toggler-padding-x: .75rem !default;\\n$navbar-toggler-font-size: $font-size-lg !default;\\n$navbar-toggler-border-radius: $btn-border-radius !default;\\n\\n$navbar-nav-scroll-max-height: 75vh !default;\\n\\n$navbar-dark-color: rgba($white, .5) !default;\\n$navbar-dark-hover-color: rgba($white, .75) !default;\\n$navbar-dark-active-color: $white !default;\\n$navbar-dark-disabled-color: rgba($white, .25) !default;\\n$navbar-dark-toggler-icon-bg: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\\\") !default;\\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\\n\\n$navbar-light-color: rgba($black, .5) !default;\\n$navbar-light-hover-color: rgba($black, .7) !default;\\n$navbar-light-active-color: rgba($black, .9) !default;\\n$navbar-light-disabled-color: rgba($black, .3) !default;\\n$navbar-light-toggler-icon-bg: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\\\") !default;\\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\\n\\n$navbar-light-brand-color: $navbar-light-active-color !default;\\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\\n\\n\\n// Dropdowns\\n//\\n// Dropdown menu container and contents.\\n\\n$dropdown-min-width: 10rem !default;\\n$dropdown-padding-x: 0 !default;\\n$dropdown-padding-y: .5rem !default;\\n$dropdown-spacer: .125rem !default;\\n$dropdown-font-size: $font-size-base !default;\\n$dropdown-color: $body-color !default;\\n$dropdown-bg: $white !default;\\n$dropdown-border-color: rgba($black, .15) !default;\\n$dropdown-border-radius: $border-radius !default;\\n$dropdown-border-width: $border-width !default;\\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\\n$dropdown-divider-bg: $gray-200 !default;\\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\\n\\n$dropdown-link-color: $gray-900 !default;\\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\\n$dropdown-link-hover-bg: $gray-200 !default;\\n\\n$dropdown-link-active-color: $component-active-color !default;\\n$dropdown-link-active-bg: $component-active-bg !default;\\n\\n$dropdown-link-disabled-color: $gray-500 !default;\\n\\n$dropdown-item-padding-y: .25rem !default;\\n$dropdown-item-padding-x: 1.5rem !default;\\n\\n$dropdown-header-color: $gray-600 !default;\\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\\n\\n\\n// Pagination\\n\\n$pagination-padding-y: .5rem !default;\\n$pagination-padding-x: .75rem !default;\\n$pagination-padding-y-sm: .25rem !default;\\n$pagination-padding-x-sm: .5rem !default;\\n$pagination-padding-y-lg: .75rem !default;\\n$pagination-padding-x-lg: 1.5rem !default;\\n$pagination-line-height: 1.25 !default;\\n\\n$pagination-color: $link-color !default;\\n$pagination-bg: $white !default;\\n$pagination-border-width: $border-width !default;\\n$pagination-border-color: $gray-300 !default;\\n\\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\\n$pagination-focus-outline: 0 !default;\\n\\n$pagination-hover-color: $link-hover-color !default;\\n$pagination-hover-bg: $gray-200 !default;\\n$pagination-hover-border-color: $gray-300 !default;\\n\\n$pagination-active-color: $component-active-color !default;\\n$pagination-active-bg: $component-active-bg !default;\\n$pagination-active-border-color: $pagination-active-bg !default;\\n\\n$pagination-disabled-color: $gray-600 !default;\\n$pagination-disabled-bg: $white !default;\\n$pagination-disabled-border-color: $gray-300 !default;\\n\\n$pagination-border-radius-sm: $border-radius-sm !default;\\n$pagination-border-radius-lg: $border-radius-lg !default;\\n\\n\\n// Jumbotron\\n\\n$jumbotron-padding: 2rem !default;\\n$jumbotron-color: null !default;\\n$jumbotron-bg: $gray-200 !default;\\n\\n\\n// Cards\\n\\n$card-spacer-y: .75rem !default;\\n$card-spacer-x: 1.25rem !default;\\n$card-border-width: $border-width !default;\\n$card-border-radius: $border-radius !default;\\n$card-border-color: rgba($black, .125) !default;\\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\\n$card-cap-bg: rgba($black, .03) !default;\\n$card-cap-color: null !default;\\n$card-height: null !default;\\n$card-color: null !default;\\n$card-bg: $white !default;\\n\\n$card-img-overlay-padding: 1.25rem !default;\\n\\n$card-group-margin: $grid-gutter-width * .5 !default;\\n$card-deck-margin: $card-group-margin !default;\\n\\n$card-columns-count: 3 !default;\\n$card-columns-gap: 1.25rem !default;\\n$card-columns-margin: $card-spacer-y !default;\\n\\n\\n// Tooltips\\n\\n$tooltip-font-size: $font-size-sm !default;\\n$tooltip-max-width: 200px !default;\\n$tooltip-color: $white !default;\\n$tooltip-bg: $black !default;\\n$tooltip-border-radius: $border-radius !default;\\n$tooltip-opacity: .9 !default;\\n$tooltip-padding-y: .25rem !default;\\n$tooltip-padding-x: .5rem !default;\\n$tooltip-margin: 0 !default;\\n\\n$tooltip-arrow-width: .8rem !default;\\n$tooltip-arrow-height: .4rem !default;\\n$tooltip-arrow-color: $tooltip-bg !default;\\n\\n// Form tooltips must come after regular tooltips\\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\\n$form-feedback-tooltip-line-height: $line-height-base !default;\\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\\n\\n\\n// Popovers\\n\\n$popover-font-size: $font-size-sm !default;\\n$popover-bg: $white !default;\\n$popover-max-width: 276px !default;\\n$popover-border-width: $border-width !default;\\n$popover-border-color: rgba($black, .2) !default;\\n$popover-border-radius: $border-radius-lg !default;\\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\\n\\n$popover-header-bg: darken($popover-bg, 3%) !default;\\n$popover-header-color: $headings-color !default;\\n$popover-header-padding-y: .5rem !default;\\n$popover-header-padding-x: .75rem !default;\\n\\n$popover-body-color: $body-color !default;\\n$popover-body-padding-y: $popover-header-padding-y !default;\\n$popover-body-padding-x: $popover-header-padding-x !default;\\n\\n$popover-arrow-width: 1rem !default;\\n$popover-arrow-height: .5rem !default;\\n$popover-arrow-color: $popover-bg !default;\\n\\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\\n\\n\\n// Toasts\\n\\n$toast-max-width: 350px !default;\\n$toast-padding-x: .75rem !default;\\n$toast-padding-y: .25rem !default;\\n$toast-font-size: .875rem !default;\\n$toast-color: null !default;\\n$toast-background-color: rgba($white, .85) !default;\\n$toast-border-width: 1px !default;\\n$toast-border-color: rgba(0, 0, 0, .1) !default;\\n$toast-border-radius: .25rem !default;\\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\\n\\n$toast-header-color: $gray-600 !default;\\n$toast-header-background-color: rgba($white, .85) !default;\\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\\n\\n\\n// Badges\\n\\n$badge-font-size: 75% !default;\\n$badge-font-weight: $font-weight-bold !default;\\n$badge-padding-y: .25em !default;\\n$badge-padding-x: .4em !default;\\n$badge-border-radius: $border-radius !default;\\n\\n$badge-transition: $btn-transition !default;\\n$badge-focus-width: $input-btn-focus-width !default;\\n\\n$badge-pill-padding-x: .6em !default;\\n// Use a higher than normal value to ensure completely rounded edges when\\n// customizing padding or font-size on labels.\\n$badge-pill-border-radius: 10rem !default;\\n\\n\\n// Modals\\n\\n// Padding applied to the modal body\\n$modal-inner-padding: 1rem !default;\\n\\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\\n$modal-footer-margin-between: .5rem !default;\\n\\n$modal-dialog-margin: .5rem !default;\\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\\n\\n$modal-title-line-height: $line-height-base !default;\\n\\n$modal-content-color: null !default;\\n$modal-content-bg: $white !default;\\n$modal-content-border-color: rgba($black, .2) !default;\\n$modal-content-border-width: $border-width !default;\\n$modal-content-border-radius: $border-radius-lg !default;\\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\\n\\n$modal-backdrop-bg: $black !default;\\n$modal-backdrop-opacity: .5 !default;\\n$modal-header-border-color: $border-color !default;\\n$modal-footer-border-color: $modal-header-border-color !default;\\n$modal-header-border-width: $modal-content-border-width !default;\\n$modal-footer-border-width: $modal-header-border-width !default;\\n$modal-header-padding-y: 1rem !default;\\n$modal-header-padding-x: 1rem !default;\\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\\n\\n$modal-xl: 1140px !default;\\n$modal-lg: 800px !default;\\n$modal-md: 500px !default;\\n$modal-sm: 300px !default;\\n\\n$modal-fade-transform: translate(0, -50px) !default;\\n$modal-show-transform: none !default;\\n$modal-transition: transform .3s ease-out !default;\\n$modal-scale-transform: scale(1.02) !default;\\n\\n\\n// Alerts\\n//\\n// Define alert colors, border radius, and padding.\\n\\n$alert-padding-y: .75rem !default;\\n$alert-padding-x: 1.25rem !default;\\n$alert-margin-bottom: 1rem !default;\\n$alert-border-radius: $border-radius !default;\\n$alert-link-font-weight: $font-weight-bold !default;\\n$alert-border-width: $border-width !default;\\n\\n$alert-bg-level: -10 !default;\\n$alert-border-level: -9 !default;\\n$alert-color-level: 6 !default;\\n\\n\\n// Progress bars\\n\\n$progress-height: 1rem !default;\\n$progress-font-size: $font-size-base * .75 !default;\\n$progress-bg: $gray-200 !default;\\n$progress-border-radius: $border-radius !default;\\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\\n$progress-bar-color: $white !default;\\n$progress-bar-bg: theme-color(\\\"primary\\\") !default;\\n$progress-bar-animation-timing: 1s linear infinite !default;\\n$progress-bar-transition: width .6s ease !default;\\n\\n\\n// List group\\n\\n$list-group-color: null !default;\\n$list-group-bg: $white !default;\\n$list-group-border-color: rgba($black, .125) !default;\\n$list-group-border-width: $border-width !default;\\n$list-group-border-radius: $border-radius !default;\\n\\n$list-group-item-padding-y: .75rem !default;\\n$list-group-item-padding-x: 1.25rem !default;\\n\\n$list-group-hover-bg: $gray-100 !default;\\n$list-group-active-color: $component-active-color !default;\\n$list-group-active-bg: $component-active-bg !default;\\n$list-group-active-border-color: $list-group-active-bg !default;\\n\\n$list-group-disabled-color: $gray-600 !default;\\n$list-group-disabled-bg: $list-group-bg !default;\\n\\n$list-group-action-color: $gray-700 !default;\\n$list-group-action-hover-color: $list-group-action-color !default;\\n\\n$list-group-action-active-color: $body-color !default;\\n$list-group-action-active-bg: $gray-200 !default;\\n\\n\\n// Image thumbnails\\n\\n$thumbnail-padding: .25rem !default;\\n$thumbnail-bg: $body-bg !default;\\n$thumbnail-border-width: $border-width !default;\\n$thumbnail-border-color: $gray-300 !default;\\n$thumbnail-border-radius: $border-radius !default;\\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\\n\\n\\n// Figures\\n\\n$figure-caption-font-size: 90% !default;\\n$figure-caption-color: $gray-600 !default;\\n\\n\\n// Breadcrumbs\\n\\n$breadcrumb-font-size: null !default;\\n\\n$breadcrumb-padding-y: .75rem !default;\\n$breadcrumb-padding-x: 1rem !default;\\n$breadcrumb-item-padding: .5rem !default;\\n\\n$breadcrumb-margin-bottom: 1rem !default;\\n\\n$breadcrumb-bg: $gray-200 !default;\\n$breadcrumb-divider-color: $gray-600 !default;\\n$breadcrumb-active-color: $gray-600 !default;\\n$breadcrumb-divider: quote(\\\"/\\\") !default;\\n\\n$breadcrumb-border-radius: $border-radius !default;\\n\\n\\n// Carousel\\n\\n$carousel-control-color: $white !default;\\n$carousel-control-width: 15% !default;\\n$carousel-control-opacity: .5 !default;\\n$carousel-control-hover-opacity: .9 !default;\\n$carousel-control-transition: opacity .15s ease !default;\\n\\n$carousel-indicator-width: 30px !default;\\n$carousel-indicator-height: 3px !default;\\n$carousel-indicator-hit-area-height: 10px !default;\\n$carousel-indicator-spacer: 3px !default;\\n$carousel-indicator-active-bg: $white !default;\\n$carousel-indicator-transition: opacity .6s ease !default;\\n\\n$carousel-caption-width: 70% !default;\\n$carousel-caption-color: $white !default;\\n\\n$carousel-control-icon-width: 20px !default;\\n\\n$carousel-control-prev-icon-bg: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\\\") !default;\\n$carousel-control-next-icon-bg: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\\\") !default;\\n\\n$carousel-transition-duration: .6s !default;\\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\\n\\n\\n// Spinners\\n\\n$spinner-width: 2rem !default;\\n$spinner-height: $spinner-width !default;\\n$spinner-vertical-align: -.125em !default;\\n$spinner-border-width: .25em !default;\\n\\n$spinner-width-sm: 1rem !default;\\n$spinner-height-sm: $spinner-width-sm !default;\\n$spinner-border-width-sm: .2em !default;\\n\\n\\n// Close\\n\\n$close-font-size: $font-size-base * 1.5 !default;\\n$close-font-weight: $font-weight-bold !default;\\n$close-color: $black !default;\\n$close-text-shadow: 0 1px 0 $white !default;\\n\\n\\n// Code\\n\\n$code-font-size: 87.5% !default;\\n$code-color: $pink !default;\\n\\n$kbd-padding-y: .2rem !default;\\n$kbd-padding-x: .4rem !default;\\n$kbd-font-size: $code-font-size !default;\\n$kbd-color: $white !default;\\n$kbd-bg: $gray-900 !default;\\n\\n$pre-color: $gray-900 !default;\\n$pre-scrollable-max-height: 340px !default;\\n\\n\\n// Utilities\\n\\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\\n$overflows: auto, hidden !default;\\n$positions: static, relative, absolute, fixed, sticky !default;\\n$user-selects: all, auto, none !default;\\n\\n\\n// Printing\\n\\n$print-page-size: a3 !default;\\n$print-body-min-width: map-get($grid-breakpoints, \\\"lg\\\") !default;\\n\",\"// stylelint-disable property-blacklist, scss/dollar-variable-default\\n\\n// SCSS RFS mixin\\n//\\n// Automated responsive font sizes\\n//\\n// Licensed under MIT (https://github.com/twbs/rfs/blob/v8.x/LICENSE)\\n\\n// Configuration\\n\\n// Base font size\\n$rfs-base-font-size: 1.25rem !default;\\n$rfs-font-size-unit: rem !default;\\n\\n@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {\\n @error \\\"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\\\";\\n}\\n\\n// Breakpoint at where font-size starts decreasing if screen width is smaller\\n$rfs-breakpoint: 1200px !default;\\n$rfs-breakpoint-unit: px !default;\\n\\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\\n @error \\\"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\\\";\\n}\\n\\n// Resize font size based on screen height and width\\n$rfs-two-dimensional: false !default;\\n\\n// Factor of decrease\\n$rfs-factor: 10 !default;\\n\\n@if type-of($rfs-factor) != \\\"number\\\" or $rfs-factor <= 1 {\\n @error \\\"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\\\";\\n}\\n\\n// Generate enable or disable classes. Possibilities: false, \\\"enable\\\" or \\\"disable\\\"\\n$rfs-class: false !default;\\n\\n// 1 rem = $rfs-rem-value px\\n$rfs-rem-value: 16 !default;\\n\\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\\n$rfs-safari-iframe-resize-bug-fix: false !default;\\n\\n// Disable RFS by setting $enable-responsive-font-sizes to false\\n$enable-responsive-font-sizes: true !default;\\n\\n// Cache $rfs-base-font-size unit\\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\\n\\n@function divide($dividend, $divisor, $precision: 10) {\\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\\n $dividend: abs($dividend);\\n $divisor: abs($divisor);\\n @if $dividend == 0 {\\n @return 0;\\n }\\n @if $divisor == 0 {\\n @error \\\"Cannot divide by 0\\\";\\n }\\n $remainder: $dividend;\\n $result: 0;\\n $factor: 10;\\n @while ($remainder > 0 and $precision >= 0) {\\n $quotient: 0;\\n @while ($remainder >= $divisor) {\\n $remainder: $remainder - $divisor;\\n $quotient: $quotient + 1;\\n }\\n $result: $result * 10 + $quotient;\\n $factor: $factor * .1;\\n $remainder: $remainder * 10;\\n $precision: $precision - 1;\\n @if ($precision < 0 and $remainder >= $divisor * 5) {\\n $result: $result + 1;\\n }\\n }\\n $result: $result * $factor * $sign;\\n $dividend-unit: unit($dividend);\\n $divisor-unit: unit($divisor);\\n $unit-map: (\\n \\\"px\\\": 1px,\\n \\\"rem\\\": 1rem,\\n \\\"em\\\": 1em,\\n \\\"%\\\": 1%\\n );\\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\\n $result: $result * map-get($unit-map, $dividend-unit);\\n }\\n @return $result;\\n}\\n\\n// Remove px-unit from $rfs-base-font-size for calculations\\n@if $rfs-base-font-size-unit == \\\"px\\\" {\\n $rfs-base-font-size: divide($rfs-base-font-size, $rfs-base-font-size * 0 + 1);\\n}\\n@else if $rfs-base-font-size-unit == \\\"rem\\\" {\\n $rfs-base-font-size: divide($rfs-base-font-size, divide($rfs-base-font-size * 0 + 1, $rfs-rem-value));\\n}\\n\\n// Cache $rfs-breakpoint unit to prevent multiple calls\\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\\n\\n// Remove unit from $rfs-breakpoint for calculations\\n@if $rfs-breakpoint-unit-cache == \\\"px\\\" {\\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\\n}\\n@else if $rfs-breakpoint-unit-cache == \\\"rem\\\" or $rfs-breakpoint-unit-cache == \\\"em\\\" {\\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\\n}\\n\\n// Internal mixin that adds disable classes to the selector if needed.\\n@mixin _rfs-disable-class {\\n @if $rfs-class == \\\"disable\\\" {\\n // Adding an extra class increases specificity, which prevents the media query to override the font size\\n &,\\n .disable-responsive-font-size &,\\n &.disable-responsive-font-size {\\n @content;\\n }\\n }\\n @else {\\n @content;\\n }\\n}\\n\\n// Internal mixin that adds enable classes to the selector if needed.\\n@mixin _rfs-enable-class {\\n @if $rfs-class == \\\"enable\\\" {\\n .enable-responsive-font-size &,\\n &.enable-responsive-font-size {\\n @content;\\n }\\n }\\n @else {\\n @content;\\n }\\n}\\n\\n// Internal mixin used to determine which media query needs to be used\\n@mixin _rfs-media-query($mq-value) {\\n @if $rfs-two-dimensional {\\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\\n @content;\\n }\\n }\\n @else {\\n @media (max-width: #{$mq-value}) {\\n @content;\\n }\\n }\\n}\\n\\n// Responsive font size mixin\\n@mixin rfs($fs, $important: false) {\\n // Cache $fs unit\\n $fs-unit: if(type-of($fs) == \\\"number\\\", unit($fs), false);\\n\\n // Add !important suffix if needed\\n $rfs-suffix: if($important, \\\" !important\\\", \\\"\\\");\\n\\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\\n @if not $fs-unit or $fs-unit != \\\"\\\" and $fs-unit != \\\"px\\\" and $fs-unit != \\\"rem\\\" or $fs == 0 {\\n font-size: #{$fs}#{$rfs-suffix};\\n }\\n @else {\\n // Remove unit from $fs for calculations\\n @if $fs-unit == \\\"px\\\" {\\n $fs: divide($fs, $fs * 0 + 1);\\n }\\n @else if $fs-unit == \\\"rem\\\" {\\n $fs: divide($fs, divide($fs * 0 + 1, $rfs-rem-value));\\n }\\n\\n // Set default font size\\n $rfs-static: if($rfs-font-size-unit == rem, #{divide($fs, $rfs-rem-value)}rem, #{$fs}px);\\n\\n // Only add the media query if the font size is bigger than the minimum font size\\n @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {\\n font-size: #{$rfs-static}#{$rfs-suffix};\\n }\\n @else {\\n // Calculate the minimum font size for $fs\\n $fs-min: $rfs-base-font-size + divide($fs - $rfs-base-font-size, $rfs-factor);\\n\\n // Calculate difference between $fs and the minimum font size\\n $fs-diff: $fs - $fs-min;\\n\\n // Base font-size formatting\\n $min-width: if($rfs-font-size-unit == rem, #{divide($fs-min, $rfs-rem-value)}rem, #{$fs-min}px);\\n\\n // Use `vmin` if two-dimensional is enabled\\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\\n\\n // Calculate the variable width between 0 and $rfs-breakpoint\\n $variable-width: #{divide($fs-diff * 100, $rfs-breakpoint)}#{$variable-unit};\\n\\n // Set the calculated font-size\\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\\n\\n // Breakpoint formatting\\n $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\\n\\n @include _rfs-disable-class {\\n font-size: #{$rfs-static}#{$rfs-suffix};\\n }\\n\\n @include _rfs-media-query($mq-value) {\\n @include _rfs-enable-class {\\n font-size: $rfs-fluid;\\n }\\n\\n // Include safari iframe resize fix if needed\\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\\n }\\n }\\n }\\n}\\n\\n// The font-size & responsive-font-size mixins use RFS to rescale the font size\\n@mixin font-size($fs, $important: false) {\\n @include rfs($fs, $important);\\n}\\n\\n@mixin responsive-font-size($fs, $important: false) {\\n @include rfs($fs, $important);\\n}\\n\",\"// Hover mixin and `$enable-hover-media-query` are deprecated.\\n//\\n// Originally added during our alphas and maintained during betas, this mixin was\\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\\n// would persist after initial touch.\\n//\\n// For backward compatibility, we've kept these mixins and updated them to\\n// always return their regular pseudo-classes instead of a shimmed media query.\\n//\\n// Issue: https://github.com/twbs/bootstrap/issues/25195\\n\\n@mixin hover() {\\n &:hover { @content; }\\n}\\n\\n@mixin hover-focus() {\\n &:hover,\\n &:focus {\\n @content;\\n }\\n}\\n\\n@mixin plain-hover-focus() {\\n &,\\n &:hover,\\n &:focus {\\n @content;\\n }\\n}\\n\\n@mixin hover-focus-active() {\\n &:hover,\\n &:focus,\\n &:active {\\n @content;\\n }\\n}\\n\",\"// stylelint-disable selector-list-comma-newline-after\\n\\n//\\n// Headings\\n//\\n\\nh1, h2, h3, h4, h5, h6,\\n.h1, .h2, .h3, .h4, .h5, .h6 {\\n margin-bottom: $headings-margin-bottom;\\n font-family: $headings-font-family;\\n font-weight: $headings-font-weight;\\n line-height: $headings-line-height;\\n color: $headings-color;\\n}\\n\\nh1, .h1 { @include font-size($h1-font-size); }\\nh2, .h2 { @include font-size($h2-font-size); }\\nh3, .h3 { @include font-size($h3-font-size); }\\nh4, .h4 { @include font-size($h4-font-size); }\\nh5, .h5 { @include font-size($h5-font-size); }\\nh6, .h6 { @include font-size($h6-font-size); }\\n\\n.lead {\\n @include font-size($lead-font-size);\\n font-weight: $lead-font-weight;\\n}\\n\\n// Type display classes\\n.display-1 {\\n @include font-size($display1-size);\\n font-weight: $display1-weight;\\n line-height: $display-line-height;\\n}\\n.display-2 {\\n @include font-size($display2-size);\\n font-weight: $display2-weight;\\n line-height: $display-line-height;\\n}\\n.display-3 {\\n @include font-size($display3-size);\\n font-weight: $display3-weight;\\n line-height: $display-line-height;\\n}\\n.display-4 {\\n @include font-size($display4-size);\\n font-weight: $display4-weight;\\n line-height: $display-line-height;\\n}\\n\\n\\n//\\n// Horizontal rules\\n//\\n\\nhr {\\n margin-top: $hr-margin-y;\\n margin-bottom: $hr-margin-y;\\n border: 0;\\n border-top: $hr-border-width solid $hr-border-color;\\n}\\n\\n\\n//\\n// Emphasis\\n//\\n\\nsmall,\\n.small {\\n @include font-size($small-font-size);\\n font-weight: $font-weight-normal;\\n}\\n\\nmark,\\n.mark {\\n padding: $mark-padding;\\n background-color: $mark-bg;\\n}\\n\\n\\n//\\n// Lists\\n//\\n\\n.list-unstyled {\\n @include list-unstyled();\\n}\\n\\n// Inline turns list items into inline-block\\n.list-inline {\\n @include list-unstyled();\\n}\\n.list-inline-item {\\n display: inline-block;\\n\\n &:not(:last-child) {\\n margin-right: $list-inline-padding;\\n }\\n}\\n\\n\\n//\\n// Misc\\n//\\n\\n// Builds on `abbr`\\n.initialism {\\n @include font-size(90%);\\n text-transform: uppercase;\\n}\\n\\n// Blockquotes\\n.blockquote {\\n margin-bottom: $spacer;\\n @include font-size($blockquote-font-size);\\n}\\n\\n.blockquote-footer {\\n display: block;\\n @include font-size($blockquote-small-font-size);\\n color: $blockquote-small-color;\\n\\n &::before {\\n content: \\\"\\\\2014\\\\00A0\\\"; // em dash, nbsp\\n }\\n}\\n\",\"// Lists\\n\\n// Unstyled keeps list items block level, just removes default browser padding and list-style\\n@mixin list-unstyled() {\\n padding-left: 0;\\n list-style: none;\\n}\\n\",\"// Image Mixins\\n// - Responsive image\\n// - Retina image\\n\\n\\n// Responsive image\\n//\\n// Keep images from scaling beyond the width of their parents.\\n\\n@mixin img-fluid() {\\n // Part 1: Set a maximum relative to the parent\\n max-width: 100%;\\n // Part 2: Override the height to auto, otherwise images will be stretched\\n // when setting a width and height attribute on the img element.\\n height: auto;\\n}\\n\\n\\n// Retina image\\n//\\n// Short retina mixin for setting background-image and -size.\\n\\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\\n background-image: url($file-1x);\\n\\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\\n // but doesn't convert dppx=>dpi.\\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\\n // Compatibility info: https://caniuse.com/css-media-resolution\\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\\n only screen and (min-resolution: 2dppx) { // Standardized\\n background-image: url($file-2x);\\n background-size: $width-1x $height-1x;\\n }\\n @include deprecate(\\\"`img-retina()`\\\", \\\"v4.3.0\\\", \\\"v5\\\");\\n}\\n\",\"// Responsive images (ensure images don't scale beyond their parents)\\n//\\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\\n// We previously tried the \\\"images are responsive by default\\\" approach in Bootstrap v2,\\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\\n// which weren't expecting the images within themselves to be involuntarily resized.\\n// See also https://github.com/twbs/bootstrap/issues/18178\\n.img-fluid {\\n @include img-fluid();\\n}\\n\\n\\n// Image thumbnails\\n.img-thumbnail {\\n padding: $thumbnail-padding;\\n background-color: $thumbnail-bg;\\n border: $thumbnail-border-width solid $thumbnail-border-color;\\n @include border-radius($thumbnail-border-radius);\\n @include box-shadow($thumbnail-box-shadow);\\n\\n // Keep them at most 100% wide\\n @include img-fluid();\\n}\\n\\n//\\n// Figures\\n//\\n\\n.figure {\\n // Ensures the caption's text aligns with the image.\\n display: inline-block;\\n}\\n\\n.figure-img {\\n margin-bottom: $spacer * .5;\\n line-height: 1;\\n}\\n\\n.figure-caption {\\n @include font-size($figure-caption-font-size);\\n color: $figure-caption-color;\\n}\\n\",\"// Inline code\\ncode {\\n @include font-size($code-font-size);\\n color: $code-color;\\n word-wrap: break-word;\\n\\n // Streamline the style when inside anchors to avoid broken underline and more\\n a > & {\\n color: inherit;\\n }\\n}\\n\\n// User input typically entered via keyboard\\nkbd {\\n padding: $kbd-padding-y $kbd-padding-x;\\n @include font-size($kbd-font-size);\\n color: $kbd-color;\\n background-color: $kbd-bg;\\n @include border-radius($border-radius-sm);\\n @include box-shadow($kbd-box-shadow);\\n\\n kbd {\\n padding: 0;\\n @include font-size(100%);\\n font-weight: $nested-kbd-font-weight;\\n @include box-shadow(none);\\n }\\n}\\n\\n// Blocks of code\\npre {\\n display: block;\\n @include font-size($code-font-size);\\n color: $pre-color;\\n\\n // Account for some code outputs that place code tags in pre tags\\n code {\\n @include font-size(inherit);\\n color: inherit;\\n word-break: normal;\\n }\\n}\\n\\n// Enable scrollable blocks of code\\n.pre-scrollable {\\n max-height: $pre-scrollable-max-height;\\n overflow-y: scroll;\\n}\\n\",\"/// Grid system\\n//\\n// Generate semantic grid columns with these mixins.\\n\\n@mixin make-container($gutter: $grid-gutter-width) {\\n width: 100%;\\n padding-right: $gutter * .5;\\n padding-left: $gutter * .5;\\n margin-right: auto;\\n margin-left: auto;\\n}\\n\\n@mixin make-row($gutter: $grid-gutter-width) {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -$gutter * .5;\\n margin-left: -$gutter * .5;\\n}\\n\\n// For each breakpoint, define the maximum width of the container in a media query\\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\\n @each $breakpoint, $container-max-width in $max-widths {\\n @include media-breakpoint-up($breakpoint, $breakpoints) {\\n max-width: $container-max-width;\\n }\\n }\\n @include deprecate(\\\"The `make-container-max-widths` mixin\\\", \\\"v4.5.2\\\", \\\"v5\\\");\\n}\\n\\n@mixin make-col-ready($gutter: $grid-gutter-width) {\\n position: relative;\\n // Prevent columns from becoming too narrow when at smaller grid tiers by\\n // always setting `width: 100%;`. This works because we use `flex` values\\n // later on to override this initial width.\\n width: 100%;\\n padding-right: $gutter * .5;\\n padding-left: $gutter * .5;\\n}\\n\\n@mixin make-col($size, $columns: $grid-columns) {\\n flex: 0 0 percentage(divide($size, $columns));\\n // Add a `max-width` to ensure content within each column does not blow out\\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\\n // do not appear to require this.\\n max-width: percentage(divide($size, $columns));\\n}\\n\\n@mixin make-col-auto() {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; // Reset earlier grid tiers\\n}\\n\\n@mixin make-col-offset($size, $columns: $grid-columns) {\\n $num: divide($size, $columns);\\n margin-left: if($num == 0, 0, percentage($num));\\n}\\n\\n// Row columns\\n//\\n// Specify on a parent element(e.g., .row) to force immediate children into NN\\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\\n// style grid.\\n@mixin row-cols($count) {\\n > * {\\n flex: 0 0 divide(100%, $count);\\n max-width: divide(100%, $count);\\n }\\n}\\n\",\"// Breakpoint viewport sizes and media queries.\\n//\\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\\n//\\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\\n//\\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\\n\\n// Name of the next breakpoint, or null for the last breakpoint.\\n//\\n// >> breakpoint-next(sm)\\n// md\\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// md\\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\\n// md\\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\\n $n: index($breakpoint-names, $name);\\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\\n}\\n\\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\\n//\\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// 576px\\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\\n $min: map-get($breakpoints, $name);\\n @return if($min != 0, $min, null);\\n}\\n\\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\\n// The maximum value is calculated as the minimum of the next one less 0.02px\\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\\n//\\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// 767.98px\\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\\n $next: breakpoint-next($name, $breakpoints);\\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\\n}\\n\\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\\n// Useful for making responsive utilities.\\n//\\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// \\\"\\\" (Returns a blank string)\\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// \\\"-sm\\\"\\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\\n @return if(breakpoint-min($name, $breakpoints) == null, \\\"\\\", \\\"-#{$name}\\\");\\n}\\n\\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\\n// Makes the @content apply to the given breakpoint and wider.\\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($name, $breakpoints);\\n @if $min {\\n @media (min-width: $min) {\\n @content;\\n }\\n } @else {\\n @content;\\n }\\n}\\n\\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\\n// Makes the @content apply to the given breakpoint and narrower.\\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\\n $max: breakpoint-max($name, $breakpoints);\\n @if $max {\\n @media (max-width: $max) {\\n @content;\\n }\\n } @else {\\n @content;\\n }\\n}\\n\\n// Media that spans multiple breakpoint widths.\\n// Makes the @content apply between the min and max breakpoints\\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($lower, $breakpoints);\\n $max: breakpoint-max($upper, $breakpoints);\\n\\n @if $min != null and $max != null {\\n @media (min-width: $min) and (max-width: $max) {\\n @content;\\n }\\n } @else if $max == null {\\n @include media-breakpoint-up($lower, $breakpoints) {\\n @content;\\n }\\n } @else if $min == null {\\n @include media-breakpoint-down($upper, $breakpoints) {\\n @content;\\n }\\n }\\n}\\n\\n// Media between the breakpoint's minimum and maximum widths.\\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($name, $breakpoints);\\n $max: breakpoint-max($name, $breakpoints);\\n\\n @if $min != null and $max != null {\\n @media (min-width: $min) and (max-width: $max) {\\n @content;\\n }\\n } @else if $max == null {\\n @include media-breakpoint-up($name, $breakpoints) {\\n @content;\\n }\\n } @else if $min == null {\\n @include media-breakpoint-down($name, $breakpoints) {\\n @content;\\n }\\n }\\n}\\n\",\"// Container widths\\n//\\n// Set the container width, and override it for fixed navbars in media queries.\\n\\n@if $enable-grid-classes {\\n // Single container class with breakpoint max-widths\\n .container,\\n // 100% wide container at all breakpoints\\n .container-fluid {\\n @include make-container();\\n }\\n\\n // Responsive containers that are 100% wide until a breakpoint\\n @each $breakpoint, $container-max-width in $container-max-widths {\\n .container-#{$breakpoint} {\\n @extend .container-fluid;\\n }\\n\\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\\n %responsive-container-#{$breakpoint} {\\n max-width: $container-max-width;\\n }\\n\\n // Extend each breakpoint which is smaller or equal to the current breakpoint\\n $extend-breakpoint: true;\\n\\n @each $name, $width in $grid-breakpoints {\\n @if ($extend-breakpoint) {\\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\\n @extend %responsive-container-#{$breakpoint};\\n }\\n\\n // Once the current breakpoint is reached, stop extending\\n @if ($breakpoint == $name) {\\n $extend-breakpoint: false;\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n\\n// Row\\n//\\n// Rows contain your columns.\\n\\n@if $enable-grid-classes {\\n .row {\\n @include make-row();\\n }\\n\\n // Remove the negative margin from default .row, then the horizontal padding\\n // from all immediate children columns (to prevent runaway style inheritance).\\n .no-gutters {\\n margin-right: 0;\\n margin-left: 0;\\n\\n > .col,\\n > [class*=\\\"col-\\\"] {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n }\\n}\\n\\n// Columns\\n//\\n// Common styles for small and large grid columns\\n\\n@if $enable-grid-classes {\\n @include make-grid-columns();\\n}\\n\",\"// Framework grid generation\\n//\\n// Used only by Bootstrap to generate the correct number of grid classes given\\n// any value of `$grid-columns`.\\n\\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\\n // Common properties for all breakpoints\\n %grid-column {\\n position: relative;\\n width: 100%;\\n padding-right: $gutter * .5;\\n padding-left: $gutter * .5;\\n }\\n\\n @each $breakpoint in map-keys($breakpoints) {\\n $infix: breakpoint-infix($breakpoint, $breakpoints);\\n\\n @if $columns > 0 {\\n // Allow columns to stretch full width below their breakpoints\\n @for $i from 1 through $columns {\\n .col#{$infix}-#{$i} {\\n @extend %grid-column;\\n }\\n }\\n }\\n\\n .col#{$infix},\\n .col#{$infix}-auto {\\n @extend %grid-column;\\n }\\n\\n @include media-breakpoint-up($breakpoint, $breakpoints) {\\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\\n .col#{$infix} {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%;\\n }\\n\\n @if $grid-row-columns > 0 {\\n @for $i from 1 through $grid-row-columns {\\n .row-cols#{$infix}-#{$i} {\\n @include row-cols($i);\\n }\\n }\\n }\\n\\n .col#{$infix}-auto {\\n @include make-col-auto();\\n }\\n\\n @if $columns > 0 {\\n @for $i from 1 through $columns {\\n .col#{$infix}-#{$i} {\\n @include make-col($i, $columns);\\n }\\n }\\n }\\n\\n .order#{$infix}-first { order: -1; }\\n\\n .order#{$infix}-last { order: $columns + 1; }\\n\\n @for $i from 0 through $columns {\\n .order#{$infix}-#{$i} { order: $i; }\\n }\\n\\n @if $columns > 0 {\\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\\n @for $i from 0 through ($columns - 1) {\\n @if not ($infix == \\\"\\\" and $i == 0) { // Avoid emitting useless .offset-0\\n .offset#{$infix}-#{$i} {\\n @include make-col-offset($i, $columns);\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"//\\n// Basic Bootstrap table\\n//\\n\\n.table {\\n width: 100%;\\n margin-bottom: $spacer;\\n color: $table-color;\\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\\n\\n th,\\n td {\\n padding: $table-cell-padding;\\n vertical-align: top;\\n border-top: $table-border-width solid $table-border-color;\\n }\\n\\n thead th {\\n vertical-align: bottom;\\n border-bottom: (2 * $table-border-width) solid $table-border-color;\\n }\\n\\n tbody + tbody {\\n border-top: (2 * $table-border-width) solid $table-border-color;\\n }\\n}\\n\\n\\n//\\n// Condensed table w/ half padding\\n//\\n\\n.table-sm {\\n th,\\n td {\\n padding: $table-cell-padding-sm;\\n }\\n}\\n\\n\\n// Border versions\\n//\\n// Add or remove borders all around the table and between all the columns.\\n\\n.table-bordered {\\n border: $table-border-width solid $table-border-color;\\n\\n th,\\n td {\\n border: $table-border-width solid $table-border-color;\\n }\\n\\n thead {\\n th,\\n td {\\n border-bottom-width: 2 * $table-border-width;\\n }\\n }\\n}\\n\\n.table-borderless {\\n th,\\n td,\\n thead th,\\n tbody + tbody {\\n border: 0;\\n }\\n}\\n\\n// Zebra-striping\\n//\\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\\n\\n.table-striped {\\n tbody tr:nth-of-type(#{$table-striped-order}) {\\n background-color: $table-accent-bg;\\n }\\n}\\n\\n\\n// Hover effect\\n//\\n// Placed here since it has to come after the potential zebra striping\\n\\n.table-hover {\\n tbody tr {\\n @include hover() {\\n color: $table-hover-color;\\n background-color: $table-hover-bg;\\n }\\n }\\n}\\n\\n\\n// Table backgrounds\\n//\\n// Exact selectors below required to override `.table-striped` and prevent\\n// inheritance to nested tables.\\n\\n@each $color, $value in $theme-colors {\\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\\n}\\n\\n@include table-row-variant(active, $table-active-bg);\\n\\n\\n// Dark styles\\n//\\n// Same table markup, but inverted color scheme: dark background and light text.\\n\\n// stylelint-disable-next-line no-duplicate-selectors\\n.table {\\n .thead-dark {\\n th {\\n color: $table-dark-color;\\n background-color: $table-dark-bg;\\n border-color: $table-dark-border-color;\\n }\\n }\\n\\n .thead-light {\\n th {\\n color: $table-head-color;\\n background-color: $table-head-bg;\\n border-color: $table-border-color;\\n }\\n }\\n}\\n\\n.table-dark {\\n color: $table-dark-color;\\n background-color: $table-dark-bg;\\n\\n th,\\n td,\\n thead th {\\n border-color: $table-dark-border-color;\\n }\\n\\n &.table-bordered {\\n border: 0;\\n }\\n\\n &.table-striped {\\n tbody tr:nth-of-type(#{$table-striped-order}) {\\n background-color: $table-dark-accent-bg;\\n }\\n }\\n\\n &.table-hover {\\n tbody tr {\\n @include hover() {\\n color: $table-dark-hover-color;\\n background-color: $table-dark-hover-bg;\\n }\\n }\\n }\\n}\\n\\n\\n// Responsive tables\\n//\\n// Generate series of `.table-responsive-*` classes for configuring the screen\\n// size of where your table will overflow.\\n\\n.table-responsive {\\n @each $breakpoint in map-keys($grid-breakpoints) {\\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\\n $infix: breakpoint-infix($next, $grid-breakpoints);\\n\\n &#{$infix} {\\n @include media-breakpoint-down($breakpoint) {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch;\\n\\n // Prevent double border on horizontal scroll due to use of `display: block;`\\n > .table-bordered {\\n border: 0;\\n }\\n }\\n }\\n }\\n}\\n\",\"// Tables\\n\\n@mixin table-row-variant($state, $background, $border: null) {\\n // Exact selectors below required to override `.table-striped` and prevent\\n // inheritance to nested tables.\\n .table-#{$state} {\\n &,\\n > th,\\n > td {\\n background-color: $background;\\n }\\n\\n @if $border != null {\\n th,\\n td,\\n thead th,\\n tbody + tbody {\\n border-color: $border;\\n }\\n }\\n }\\n\\n // Hover states for `.table-hover`\\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\\n .table-hover {\\n $hover-background: darken($background, 5%);\\n\\n .table-#{$state} {\\n @include hover() {\\n background-color: $hover-background;\\n\\n > td,\\n > th {\\n background-color: $hover-background;\\n }\\n }\\n }\\n }\\n}\\n\",\"// Bootstrap functions\\n//\\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\\n\\n// Ascending\\n// Used to evaluate Sass maps like our grid breakpoints.\\n@mixin _assert-ascending($map, $map-name) {\\n $prev-key: null;\\n $prev-num: null;\\n @each $key, $num in $map {\\n @if $prev-num == null or unit($num) == \\\"%\\\" or unit($prev-num) == \\\"%\\\" {\\n // Do nothing\\n } @else if not comparable($prev-num, $num) {\\n @warn \\\"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\\\";\\n } @else if $prev-num >= $num {\\n @warn \\\"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\\\";\\n }\\n $prev-key: $key;\\n $prev-num: $num;\\n }\\n}\\n\\n// Starts at zero\\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\\n@mixin _assert-starts-at-zero($map, $map-name: \\\"$grid-breakpoints\\\") {\\n @if length($map) > 0 {\\n $values: map-values($map);\\n $first-value: nth($values, 1);\\n @if $first-value != 0 {\\n @warn \\\"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\\\";\\n }\\n }\\n}\\n\\n// Replace `$search` with `$replace` in `$string`\\n// Used on our SVG icon backgrounds for custom forms.\\n//\\n// @author Hugo Giraudel\\n// @param {String} $string - Initial string\\n// @param {String} $search - Substring to replace\\n// @param {String} $replace ('') - New value\\n// @return {String} - Updated string\\n@function str-replace($string, $search, $replace: \\\"\\\") {\\n $index: str-index($string, $search);\\n\\n @if $index {\\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\\n }\\n\\n @return $string;\\n}\\n\\n// See https://codepen.io/kevinweber/pen/dXWoRw\\n//\\n// Requires the use of quotes around data URIs.\\n\\n@function escape-svg($string) {\\n @if str-index($string, \\\"data:image/svg+xml\\\") {\\n @each $char, $encoded in $escaped-characters {\\n // Do not escape the url brackets\\n @if str-index($string, \\\"url(\\\") == 1 {\\n $string: url(\\\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\\\");\\n } @else {\\n $string: str-replace($string, $char, $encoded);\\n }\\n }\\n }\\n\\n @return $string;\\n}\\n\\n// Color contrast\\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\\n $r: red($color);\\n $g: green($color);\\n $b: blue($color);\\n\\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) * .001;\\n\\n @if ($yiq >= $yiq-contrasted-threshold) {\\n @return $dark;\\n } @else {\\n @return $light;\\n }\\n}\\n\\n// Retrieve color Sass maps\\n@function color($key: \\\"blue\\\") {\\n @return map-get($colors, $key);\\n}\\n\\n@function theme-color($key: \\\"primary\\\") {\\n @return map-get($theme-colors, $key);\\n}\\n\\n@function gray($key: \\\"100\\\") {\\n @return map-get($grays, $key);\\n}\\n\\n// Request a theme color level\\n@function theme-color-level($color-name: \\\"primary\\\", $level: 0) {\\n $color: theme-color($color-name);\\n $color-base: if($level > 0, $black, $white);\\n $level: abs($level);\\n\\n @return mix($color-base, $color, $level * $theme-color-interval);\\n}\\n\\n// Return valid calc\\n@function add($value1, $value2, $return-calc: true) {\\n @if $value1 == null {\\n @return $value2;\\n }\\n\\n @if $value2 == null {\\n @return $value1;\\n }\\n\\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\\n @return $value1 + $value2;\\n }\\n\\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\\\" + \\\") + $value2);\\n}\\n\\n@function subtract($value1, $value2, $return-calc: true) {\\n @if $value1 == null and $value2 == null {\\n @return null;\\n }\\n\\n @if $value1 == null {\\n @return -$value2;\\n }\\n\\n @if $value2 == null {\\n @return $value1;\\n }\\n\\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\\n @return $value1 - $value2;\\n }\\n\\n @if type-of($value2) != number {\\n $value2: unquote(\\\"(\\\") + $value2 + unquote(\\\")\\\");\\n }\\n\\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\\\" - \\\") + $value2);\\n}\\n\\n@function divide($dividend, $divisor, $precision: 10) {\\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\\n $dividend: abs($dividend);\\n $divisor: abs($divisor);\\n @if $dividend == 0 {\\n @return 0;\\n }\\n @if $divisor == 0 {\\n @error \\\"Cannot divide by 0\\\";\\n }\\n $remainder: $dividend;\\n $result: 0;\\n $factor: 10;\\n @while ($remainder > 0 and $precision >= 0) {\\n $quotient: 0;\\n @while ($remainder >= $divisor) {\\n $remainder: $remainder - $divisor;\\n $quotient: $quotient + 1;\\n }\\n $result: $result * 10 + $quotient;\\n $factor: $factor * .1;\\n $remainder: $remainder * 10;\\n $precision: $precision - 1;\\n @if ($precision < 0 and $remainder >= $divisor * 5) {\\n $result: $result + 1;\\n }\\n }\\n $result: $result * $factor * $sign;\\n $dividend-unit: unit($dividend);\\n $divisor-unit: unit($divisor);\\n $unit-map: (\\n \\\"px\\\": 1px,\\n \\\"rem\\\": 1rem,\\n \\\"em\\\": 1em,\\n \\\"%\\\": 1%\\n );\\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\\n $result: $result * map-get($unit-map, $dividend-unit);\\n }\\n @return $result;\\n}\\n\",\"// stylelint-disable selector-no-qualifying-type\\n\\n//\\n// Textual form controls\\n//\\n\\n.form-control {\\n display: block;\\n width: 100%;\\n height: $input-height;\\n padding: $input-padding-y $input-padding-x;\\n font-family: $input-font-family;\\n @include font-size($input-font-size);\\n font-weight: $input-font-weight;\\n line-height: $input-line-height;\\n color: $input-color;\\n background-color: $input-bg;\\n background-clip: padding-box;\\n border: $input-border-width solid $input-border-color;\\n\\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\\n @include border-radius($input-border-radius, 0);\\n\\n @include box-shadow($input-box-shadow);\\n @include transition($input-transition);\\n\\n // Unstyle the caret on `<select>`s in IE10+.\\n &::-ms-expand {\\n background-color: transparent;\\n border: 0;\\n }\\n\\n // Customize the `:focus` state to imitate native WebKit styles.\\n @include form-control-focus($ignore-warning: true);\\n\\n // Placeholder\\n &::placeholder {\\n color: $input-placeholder-color;\\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\\n opacity: 1;\\n }\\n\\n // Disabled and read-only inputs\\n //\\n // HTML5 says that controls under a fieldset > legend:first-child won't be\\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\\n // don't honor that edge case; we style them as disabled anyway.\\n &:disabled,\\n &[readonly] {\\n background-color: $input-disabled-bg;\\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\\n opacity: 1;\\n }\\n}\\n\\ninput[type=\\\"date\\\"],\\ninput[type=\\\"time\\\"],\\ninput[type=\\\"datetime-local\\\"],\\ninput[type=\\\"month\\\"] {\\n &.form-control {\\n appearance: none; // Fix appearance for date inputs in Safari\\n }\\n}\\n\\nselect.form-control {\\n // Remove select outline from select box in FF\\n &:-moz-focusring {\\n color: transparent;\\n text-shadow: 0 0 0 $input-color;\\n }\\n\\n &:focus::-ms-value {\\n // Suppress the nested default white text on blue background highlight given to\\n // the selected option text when the (still closed) <select> receives focus\\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\\n // match the appearance of the native widget.\\n // See https://github.com/twbs/bootstrap/issues/19398.\\n color: $input-color;\\n background-color: $input-bg;\\n }\\n}\\n\\n// Make file inputs better match text inputs by forcing them to new lines.\\n.form-control-file,\\n.form-control-range {\\n display: block;\\n width: 100%;\\n}\\n\\n\\n//\\n// Labels\\n//\\n\\n// For use with horizontal and inline forms, when you need the label (or legend)\\n// text to align with the form controls.\\n.col-form-label {\\n padding-top: add($input-padding-y, $input-border-width);\\n padding-bottom: add($input-padding-y, $input-border-width);\\n margin-bottom: 0; // Override the `<label>/<legend>` default\\n @include font-size(inherit); // Override the `<legend>` default\\n line-height: $input-line-height;\\n}\\n\\n.col-form-label-lg {\\n padding-top: add($input-padding-y-lg, $input-border-width);\\n padding-bottom: add($input-padding-y-lg, $input-border-width);\\n @include font-size($input-font-size-lg);\\n line-height: $input-line-height-lg;\\n}\\n\\n.col-form-label-sm {\\n padding-top: add($input-padding-y-sm, $input-border-width);\\n padding-bottom: add($input-padding-y-sm, $input-border-width);\\n @include font-size($input-font-size-sm);\\n line-height: $input-line-height-sm;\\n}\\n\\n\\n// Readonly controls as plain text\\n//\\n// Apply class to a readonly input to make it appear like regular plain\\n// text (without any border, background color, focus indicator)\\n\\n.form-control-plaintext {\\n display: block;\\n width: 100%;\\n padding: $input-padding-y 0;\\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\\n @include font-size($input-font-size);\\n line-height: $input-line-height;\\n color: $input-plaintext-color;\\n background-color: transparent;\\n border: solid transparent;\\n border-width: $input-border-width 0;\\n\\n &.form-control-sm,\\n &.form-control-lg {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n}\\n\\n\\n// Form control sizing\\n//\\n// Build on `.form-control` with modifier classes to decrease or increase the\\n// height and font-size of form controls.\\n//\\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\\n\\n.form-control-sm {\\n height: $input-height-sm;\\n padding: $input-padding-y-sm $input-padding-x-sm;\\n @include font-size($input-font-size-sm);\\n line-height: $input-line-height-sm;\\n @include border-radius($input-border-radius-sm);\\n}\\n\\n.form-control-lg {\\n height: $input-height-lg;\\n padding: $input-padding-y-lg $input-padding-x-lg;\\n @include font-size($input-font-size-lg);\\n line-height: $input-line-height-lg;\\n @include border-radius($input-border-radius-lg);\\n}\\n\\n// stylelint-disable-next-line no-duplicate-selectors\\nselect.form-control {\\n &[size],\\n &[multiple] {\\n height: auto;\\n }\\n}\\n\\ntextarea.form-control {\\n height: auto;\\n}\\n\\n// Form groups\\n//\\n// Designed to help with the organization and spacing of vertical forms. For\\n// horizontal forms, use the predefined grid classes.\\n\\n.form-group {\\n margin-bottom: $form-group-margin-bottom;\\n}\\n\\n.form-text {\\n display: block;\\n margin-top: $form-text-margin-top;\\n}\\n\\n\\n// Form grid\\n//\\n// Special replacement for our grid system's `.row` for tighter form layouts.\\n\\n.form-row {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -$form-grid-gutter-width * .5;\\n margin-left: -$form-grid-gutter-width * .5;\\n\\n > .col,\\n > [class*=\\\"col-\\\"] {\\n padding-right: $form-grid-gutter-width * .5;\\n padding-left: $form-grid-gutter-width * .5;\\n }\\n}\\n\\n\\n// Checkboxes and radios\\n//\\n// Indent the labels to position radios/checkboxes as hanging controls.\\n\\n.form-check {\\n position: relative;\\n display: block;\\n padding-left: $form-check-input-gutter;\\n}\\n\\n.form-check-input {\\n position: absolute;\\n margin-top: $form-check-input-margin-y;\\n margin-left: -$form-check-input-gutter;\\n\\n // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\\n &[disabled] ~ .form-check-label,\\n &:disabled ~ .form-check-label {\\n color: $text-muted;\\n }\\n}\\n\\n.form-check-label {\\n margin-bottom: 0; // Override default `<label>` bottom margin\\n}\\n\\n.form-check-inline {\\n display: inline-flex;\\n align-items: center;\\n padding-left: 0; // Override base .form-check\\n margin-right: $form-check-inline-margin-x;\\n\\n // Undo .form-check-input defaults and add some `margin-right`.\\n .form-check-input {\\n position: static;\\n margin-top: 0;\\n margin-right: $form-check-inline-input-margin-x;\\n margin-left: 0;\\n }\\n}\\n\\n\\n// Form validation\\n//\\n// Provide feedback to users when form field values are valid or invalid. Works\\n// primarily for client-side validation via scoped `:invalid` and `:valid`\\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\\n// server side validation.\\n\\n@each $state, $data in $form-validation-states {\\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\\n}\\n\\n// Inline forms\\n//\\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\\n// forms begin stacked on extra small (mobile) devices and then go inline when\\n// viewports reach <768px.\\n//\\n// Requires wrapping inputs and labels with `.form-group` for proper display of\\n// default HTML form controls and our custom form controls (e.g., input groups).\\n\\n.form-inline {\\n display: flex;\\n flex-flow: row wrap;\\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\\n\\n // Because we use flex, the initial sizing of checkboxes is collapsed and\\n // doesn't occupy the full-width (which is what we want for xs grid tier),\\n // so we force that here.\\n .form-check {\\n width: 100%;\\n }\\n\\n // Kick in the inline\\n @include media-breakpoint-up(sm) {\\n label {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin-bottom: 0;\\n }\\n\\n // Inline-block all the things for \\\"inline\\\"\\n .form-group {\\n display: flex;\\n flex: 0 0 auto;\\n flex-flow: row wrap;\\n align-items: center;\\n margin-bottom: 0;\\n }\\n\\n // Allow folks to *not* use `.form-group`\\n .form-control {\\n display: inline-block;\\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\\n vertical-align: middle;\\n }\\n\\n // Make static controls behave like regular ones\\n .form-control-plaintext {\\n display: inline-block;\\n }\\n\\n .input-group,\\n .custom-select {\\n width: auto;\\n }\\n\\n // Remove default margin on radios/checkboxes that were used for stacking, and\\n // then undo the floating of radios and checkboxes to match.\\n .form-check {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: auto;\\n padding-left: 0;\\n }\\n .form-check-input {\\n position: relative;\\n flex-shrink: 0;\\n margin-top: 0;\\n margin-right: $form-check-input-margin-x;\\n margin-left: 0;\\n }\\n\\n .custom-control {\\n align-items: center;\\n justify-content: center;\\n }\\n .custom-control-label {\\n margin-bottom: 0;\\n }\\n }\\n}\\n\",\"// stylelint-disable property-disallowed-list\\n// Single side border-radius\\n\\n// Helper function to replace negative values with 0\\n@function valid-radius($radius) {\\n $return: ();\\n @each $value in $radius {\\n @if type-of($value) == number {\\n $return: append($return, max($value, 0));\\n } @else {\\n $return: append($return, $value);\\n }\\n }\\n @return $return;\\n}\\n\\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\\n @if $enable-rounded {\\n border-radius: valid-radius($radius);\\n }\\n @else if $fallback-border-radius != false {\\n border-radius: $fallback-border-radius;\\n }\\n}\\n\\n@mixin border-top-radius($radius) {\\n @if $enable-rounded {\\n border-top-left-radius: valid-radius($radius);\\n border-top-right-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-right-radius($radius) {\\n @if $enable-rounded {\\n border-top-right-radius: valid-radius($radius);\\n border-bottom-right-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-bottom-radius($radius) {\\n @if $enable-rounded {\\n border-bottom-right-radius: valid-radius($radius);\\n border-bottom-left-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-left-radius($radius) {\\n @if $enable-rounded {\\n border-top-left-radius: valid-radius($radius);\\n border-bottom-left-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-top-left-radius($radius) {\\n @if $enable-rounded {\\n border-top-left-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-top-right-radius($radius) {\\n @if $enable-rounded {\\n border-top-right-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-bottom-right-radius($radius) {\\n @if $enable-rounded {\\n border-bottom-right-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-bottom-left-radius($radius) {\\n @if $enable-rounded {\\n border-bottom-left-radius: valid-radius($radius);\\n }\\n}\\n\",\"// stylelint-disable property-disallowed-list\\n@mixin transition($transition...) {\\n @if length($transition) == 0 {\\n $transition: $transition-base;\\n }\\n\\n @if length($transition) > 1 {\\n @each $value in $transition {\\n @if $value == null or $value == none {\\n @warn \\\"The keyword 'none' or 'null' must be used as a single argument.\\\";\\n }\\n }\\n }\\n\\n @if $enable-transitions {\\n @if nth($transition, 1) != null {\\n transition: $transition;\\n }\\n\\n @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\\n @media (prefers-reduced-motion: reduce) {\\n transition: none;\\n }\\n }\\n }\\n}\\n\",\"// Form control focus state\\n//\\n// Generate a customized focus state and for any input with the specified color,\\n// which defaults to the `$input-focus-border-color` variable.\\n//\\n// We highly encourage you to not customize the default value, but instead use\\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\\n// WebKit's default styles, but applicable to a wider range of browsers. Its\\n// usability and accessibility should be taken into account with any change.\\n//\\n// Example usage: change the default blue border and shadow to white for better\\n// contrast against a dark gray background.\\n@mixin form-control-focus($ignore-warning: false) {\\n &:focus {\\n color: $input-focus-color;\\n background-color: $input-focus-bg;\\n border-color: $input-focus-border-color;\\n outline: 0;\\n @if $enable-shadows {\\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: $input-focus-box-shadow;\\n }\\n }\\n @include deprecate(\\\"The `form-control-focus()` mixin\\\", \\\"v4.4.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\\n// This mixin uses an `if()` technique to be compatible with Dart Sass\\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\\n@mixin form-validation-state-selector($state) {\\n @if ($state == \\\"valid\\\" or $state == \\\"invalid\\\") {\\n .was-validated #{if(&, \\\"&\\\", \\\"\\\")}:#{$state},\\n #{if(&, \\\"&\\\", \\\"\\\")}.is-#{$state} {\\n @content;\\n }\\n } @else {\\n #{if(&, \\\"&\\\", \\\"\\\")}.is-#{$state} {\\n @content;\\n }\\n }\\n}\\n\\n@mixin form-validation-state($state, $color, $icon) {\\n .#{$state}-feedback {\\n display: none;\\n width: 100%;\\n margin-top: $form-feedback-margin-top;\\n @include font-size($form-feedback-font-size);\\n color: $color;\\n }\\n\\n .#{$state}-tooltip {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 5;\\n display: none;\\n max-width: 100%; // Contain to parent when possible\\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\\n margin-top: .1rem;\\n @include font-size($form-feedback-tooltip-font-size);\\n line-height: $form-feedback-tooltip-line-height;\\n color: color-yiq($color);\\n background-color: rgba($color, $form-feedback-tooltip-opacity);\\n @include border-radius($form-feedback-tooltip-border-radius);\\n\\n // See https://github.com/twbs/bootstrap/pull/31557\\n // Align tooltip to form elements\\n .form-row > .col > &,\\n .form-row > [class*=\\\"col-\\\"] > & {\\n left: $form-grid-gutter-width * .5;\\n }\\n }\\n\\n @include form-validation-state-selector($state) {\\n ~ .#{$state}-feedback,\\n ~ .#{$state}-tooltip {\\n display: block;\\n }\\n }\\n\\n .form-control {\\n @include form-validation-state-selector($state) {\\n border-color: $color;\\n\\n @if $enable-validation-icons {\\n padding-right: $input-height-inner !important; // stylelint-disable-line declaration-no-important\\n background-image: escape-svg($icon);\\n background-repeat: no-repeat;\\n background-position: right $input-height-inner-quarter center;\\n background-size: $input-height-inner-half $input-height-inner-half;\\n }\\n\\n &:focus {\\n border-color: $color;\\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\\n }\\n }\\n }\\n\\n // stylelint-disable-next-line selector-no-qualifying-type\\n select.form-control {\\n @include form-validation-state-selector($state) {\\n @if $enable-validation-icons {\\n padding-right: $input-padding-x * 4 !important; // stylelint-disable-line declaration-no-important\\n background-position: right $input-padding-x * 2 center;\\n }\\n }\\n }\\n\\n // stylelint-disable-next-line selector-no-qualifying-type\\n textarea.form-control {\\n @include form-validation-state-selector($state) {\\n @if $enable-validation-icons {\\n padding-right: $input-height-inner;\\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\\n }\\n }\\n }\\n\\n .custom-select {\\n @include form-validation-state-selector($state) {\\n border-color: $color;\\n\\n @if $enable-validation-icons {\\n padding-right: $custom-select-feedback-icon-padding-right !important; // stylelint-disable-line declaration-no-important\\n background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;\\n }\\n\\n &:focus {\\n border-color: $color;\\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\\n }\\n }\\n }\\n\\n .form-check-input {\\n @include form-validation-state-selector($state) {\\n ~ .form-check-label {\\n color: $color;\\n }\\n\\n ~ .#{$state}-feedback,\\n ~ .#{$state}-tooltip {\\n display: block;\\n }\\n }\\n }\\n\\n .custom-control-input {\\n @include form-validation-state-selector($state) {\\n ~ .custom-control-label {\\n color: $color;\\n\\n &::before {\\n border-color: $color;\\n }\\n }\\n\\n &:checked {\\n ~ .custom-control-label::before {\\n border-color: lighten($color, 10%);\\n @include gradient-bg(lighten($color, 10%));\\n }\\n }\\n\\n &:focus {\\n ~ .custom-control-label::before {\\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\\n }\\n\\n &:not(:checked) ~ .custom-control-label::before {\\n border-color: $color;\\n }\\n }\\n }\\n }\\n\\n // custom file\\n .custom-file-input {\\n @include form-validation-state-selector($state) {\\n ~ .custom-file-label {\\n border-color: $color;\\n }\\n\\n &:focus {\\n ~ .custom-file-label {\\n border-color: $color;\\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\\n }\\n }\\n }\\n }\\n}\\n\",\"// Gradients\\n\\n@mixin gradient-bg($color) {\\n @if $enable-gradients {\\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\\n } @else {\\n background-color: $color;\\n }\\n}\\n\\n// Horizontal gradient, from left to right\\n//\\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\\n background-repeat: repeat-x;\\n}\\n\\n// Vertical gradient, from top to bottom\\n//\\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\\n background-repeat: repeat-x;\\n}\\n\\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\\n background-image: linear-gradient($deg, $start-color, $end-color);\\n background-repeat: repeat-x;\\n}\\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\\n background-repeat: no-repeat;\\n}\\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\\n background-repeat: no-repeat;\\n}\\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\\n background-image: radial-gradient(circle, $inner-color, $outer-color);\\n background-repeat: no-repeat;\\n}\\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\\n}\\n\",\"// stylelint-disable selector-no-qualifying-type\\n\\n//\\n// Base styles\\n//\\n\\n.btn {\\n display: inline-block;\\n font-family: $btn-font-family;\\n font-weight: $btn-font-weight;\\n color: $body-color;\\n text-align: center;\\n text-decoration: if($link-decoration == none, null, none);\\n white-space: $btn-white-space;\\n vertical-align: middle;\\n user-select: none;\\n background-color: transparent;\\n border: $btn-border-width solid transparent;\\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\\n @include transition($btn-transition);\\n\\n @include hover() {\\n color: $body-color;\\n text-decoration: none;\\n }\\n\\n &:focus,\\n &.focus {\\n outline: 0;\\n box-shadow: $btn-focus-box-shadow;\\n }\\n\\n // Disabled comes first so active can properly restyle\\n &.disabled,\\n &:disabled {\\n opacity: $btn-disabled-opacity;\\n @include box-shadow(none);\\n }\\n\\n &:not(:disabled):not(.disabled) {\\n cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\\n\\n &:active,\\n &.active {\\n @include box-shadow($btn-active-box-shadow);\\n\\n &:focus {\\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\\n }\\n }\\n }\\n}\\n\\n// Future-proof disabling of clicks on `<a>` elements\\na.btn.disabled,\\nfieldset:disabled a.btn {\\n pointer-events: none;\\n}\\n\\n\\n//\\n// Alternate buttons\\n//\\n\\n@each $color, $value in $theme-colors {\\n .btn-#{$color} {\\n @include button-variant($value, $value);\\n }\\n}\\n\\n@each $color, $value in $theme-colors {\\n .btn-outline-#{$color} {\\n @include button-outline-variant($value);\\n }\\n}\\n\\n\\n//\\n// Link buttons\\n//\\n\\n// Make a button look and behave like a link\\n.btn-link {\\n font-weight: $font-weight-normal;\\n color: $link-color;\\n text-decoration: $link-decoration;\\n\\n @include hover() {\\n color: $link-hover-color;\\n text-decoration: $link-hover-decoration;\\n }\\n\\n &:focus,\\n &.focus {\\n text-decoration: $link-hover-decoration;\\n }\\n\\n &:disabled,\\n &.disabled {\\n color: $btn-link-disabled-color;\\n pointer-events: none;\\n }\\n\\n // No need for an active state here\\n}\\n\\n\\n//\\n// Button Sizes\\n//\\n\\n.btn-lg {\\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\\n}\\n\\n.btn-sm {\\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\\n}\\n\\n\\n//\\n// Block button\\n//\\n\\n.btn-block {\\n display: block;\\n width: 100%;\\n\\n // Vertically space out multiple block buttons\\n + .btn-block {\\n margin-top: $btn-block-spacing-y;\\n }\\n}\\n\\n// Specificity overrides\\ninput[type=\\\"submit\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"button\\\"] {\\n &.btn-block {\\n width: 100%;\\n }\\n}\\n\",\"// Button variants\\n//\\n// Easily pump out default styles, as well as :hover, :focus, :active,\\n// and disabled options for all buttons\\n\\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\\n color: color-yiq($background);\\n @include gradient-bg($background);\\n border-color: $border;\\n @include box-shadow($btn-box-shadow);\\n\\n @include hover() {\\n color: color-yiq($hover-background);\\n @include gradient-bg($hover-background);\\n border-color: $hover-border;\\n }\\n\\n &:focus,\\n &.focus {\\n color: color-yiq($hover-background);\\n @include gradient-bg($hover-background);\\n border-color: $hover-border;\\n @if $enable-shadows {\\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\\n }\\n }\\n\\n // Disabled comes first so active can properly restyle\\n &.disabled,\\n &:disabled {\\n color: color-yiq($background);\\n background-color: $background;\\n border-color: $border;\\n // Remove CSS gradients if they're enabled\\n @if $enable-gradients {\\n background-image: none;\\n }\\n }\\n\\n &:not(:disabled):not(.disabled):active,\\n &:not(:disabled):not(.disabled).active,\\n .show > &.dropdown-toggle {\\n color: color-yiq($active-background);\\n background-color: $active-background;\\n @if $enable-gradients {\\n background-image: none; // Remove the gradient for the pressed/active state\\n }\\n border-color: $active-border;\\n\\n &:focus {\\n @if $enable-shadows and $btn-active-box-shadow != none {\\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\\n }\\n }\\n }\\n}\\n\\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\\n color: $color;\\n border-color: $color;\\n\\n @include hover() {\\n color: $color-hover;\\n background-color: $active-background;\\n border-color: $active-border;\\n }\\n\\n &:focus,\\n &.focus {\\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\\n }\\n\\n &.disabled,\\n &:disabled {\\n color: $color;\\n background-color: transparent;\\n }\\n\\n &:not(:disabled):not(.disabled):active,\\n &:not(:disabled):not(.disabled).active,\\n .show > &.dropdown-toggle {\\n color: color-yiq($active-background);\\n background-color: $active-background;\\n border-color: $active-border;\\n\\n &:focus {\\n @if $enable-shadows and $btn-active-box-shadow != none {\\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\\n }\\n }\\n }\\n}\\n\\n// Button sizes\\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\\n padding: $padding-y $padding-x;\\n @include font-size($font-size);\\n line-height: $line-height;\\n // Manually declare to provide an override to the browser default\\n @include border-radius($border-radius, 0);\\n}\\n\",\".fade {\\n @include transition($transition-fade);\\n\\n &:not(.show) {\\n opacity: 0;\\n }\\n}\\n\\n.collapse {\\n &:not(.show) {\\n display: none;\\n }\\n}\\n\\n.collapsing {\\n position: relative;\\n height: 0;\\n overflow: hidden;\\n @include transition($transition-collapse);\\n\\n &.width {\\n width: 0;\\n height: auto;\\n @include transition($transition-collapse-width);\\n }\\n}\\n\",\"// The dropdown wrapper (`<div>`)\\n.dropup,\\n.dropright,\\n.dropdown,\\n.dropleft {\\n position: relative;\\n}\\n\\n.dropdown-toggle {\\n white-space: nowrap;\\n\\n // Generate the caret automatically\\n @include caret();\\n}\\n\\n// The dropdown menu\\n.dropdown-menu {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: $zindex-dropdown;\\n display: none; // none by default, but block on \\\"open\\\" of the menu\\n float: left;\\n min-width: $dropdown-min-width;\\n padding: $dropdown-padding-y $dropdown-padding-x;\\n margin: $dropdown-spacer 0 0; // override default ul\\n @include font-size($dropdown-font-size);\\n color: $dropdown-color;\\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\\n list-style: none;\\n background-color: $dropdown-bg;\\n background-clip: padding-box;\\n border: $dropdown-border-width solid $dropdown-border-color;\\n @include border-radius($dropdown-border-radius);\\n @include box-shadow($dropdown-box-shadow);\\n}\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .dropdown-menu#{$infix}-left {\\n right: auto;\\n left: 0;\\n }\\n\\n .dropdown-menu#{$infix}-right {\\n right: 0;\\n left: auto;\\n }\\n }\\n}\\n\\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\\n// Just add .dropup after the standard .dropdown class and you're set.\\n.dropup {\\n .dropdown-menu {\\n top: auto;\\n bottom: 100%;\\n margin-top: 0;\\n margin-bottom: $dropdown-spacer;\\n }\\n\\n .dropdown-toggle {\\n @include caret(up);\\n }\\n}\\n\\n.dropright {\\n .dropdown-menu {\\n top: 0;\\n right: auto;\\n left: 100%;\\n margin-top: 0;\\n margin-left: $dropdown-spacer;\\n }\\n\\n .dropdown-toggle {\\n @include caret(right);\\n &::after {\\n vertical-align: 0;\\n }\\n }\\n}\\n\\n.dropleft {\\n .dropdown-menu {\\n top: 0;\\n right: 100%;\\n left: auto;\\n margin-top: 0;\\n margin-right: $dropdown-spacer;\\n }\\n\\n .dropdown-toggle {\\n @include caret(left);\\n &::before {\\n vertical-align: 0;\\n }\\n }\\n}\\n\\n// When Popper is enabled, reset the basic dropdown position\\n// stylelint-disable-next-line no-duplicate-selectors\\n.dropdown-menu {\\n &[x-placement^=\\\"top\\\"],\\n &[x-placement^=\\\"right\\\"],\\n &[x-placement^=\\\"bottom\\\"],\\n &[x-placement^=\\\"left\\\"] {\\n right: auto;\\n bottom: auto;\\n }\\n}\\n\\n// Dividers (basically an `<hr>`) within the dropdown\\n.dropdown-divider {\\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\\n}\\n\\n// Links, buttons, and more within the dropdown menu\\n//\\n// `<button>`-specific styles are denoted with `// For <button>s`\\n.dropdown-item {\\n display: block;\\n width: 100%; // For `<button>`s\\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\\n clear: both;\\n font-weight: $font-weight-normal;\\n color: $dropdown-link-color;\\n text-align: inherit; // For `<button>`s\\n text-decoration: if($link-decoration == none, null, none);\\n white-space: nowrap; // prevent links from randomly breaking onto new lines\\n background-color: transparent; // For `<button>`s\\n border: 0; // For `<button>`s\\n\\n // Prevent dropdown overflow if there's no padding\\n // See https://github.com/twbs/bootstrap/pull/27703\\n @if $dropdown-padding-y == 0 {\\n &:first-child {\\n @include border-top-radius($dropdown-inner-border-radius);\\n }\\n\\n &:last-child {\\n @include border-bottom-radius($dropdown-inner-border-radius);\\n }\\n }\\n\\n @include hover-focus() {\\n color: $dropdown-link-hover-color;\\n text-decoration: none;\\n @include gradient-bg($dropdown-link-hover-bg);\\n }\\n\\n &.active,\\n &:active {\\n color: $dropdown-link-active-color;\\n text-decoration: none;\\n @include gradient-bg($dropdown-link-active-bg);\\n }\\n\\n &.disabled,\\n &:disabled {\\n color: $dropdown-link-disabled-color;\\n pointer-events: none;\\n background-color: transparent;\\n // Remove CSS gradients if they're enabled\\n @if $enable-gradients {\\n background-image: none;\\n }\\n }\\n}\\n\\n.dropdown-menu.show {\\n display: block;\\n}\\n\\n// Dropdown section headers\\n.dropdown-header {\\n display: block;\\n padding: $dropdown-header-padding;\\n margin-bottom: 0; // for use with heading elements\\n @include font-size($font-size-sm);\\n color: $dropdown-header-color;\\n white-space: nowrap; // as with > li > a\\n}\\n\\n// Dropdown text\\n.dropdown-item-text {\\n display: block;\\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\\n color: $dropdown-link-color;\\n}\\n\",\"@mixin caret-down() {\\n border-top: $caret-width solid;\\n border-right: $caret-width solid transparent;\\n border-bottom: 0;\\n border-left: $caret-width solid transparent;\\n}\\n\\n@mixin caret-up() {\\n border-top: 0;\\n border-right: $caret-width solid transparent;\\n border-bottom: $caret-width solid;\\n border-left: $caret-width solid transparent;\\n}\\n\\n@mixin caret-right() {\\n border-top: $caret-width solid transparent;\\n border-right: 0;\\n border-bottom: $caret-width solid transparent;\\n border-left: $caret-width solid;\\n}\\n\\n@mixin caret-left() {\\n border-top: $caret-width solid transparent;\\n border-right: $caret-width solid;\\n border-bottom: $caret-width solid transparent;\\n}\\n\\n@mixin caret($direction: down) {\\n @if $enable-caret {\\n &::after {\\n display: inline-block;\\n margin-left: $caret-spacing;\\n vertical-align: $caret-vertical-align;\\n content: \\\"\\\";\\n @if $direction == down {\\n @include caret-down();\\n } @else if $direction == up {\\n @include caret-up();\\n } @else if $direction == right {\\n @include caret-right();\\n }\\n }\\n\\n @if $direction == left {\\n &::after {\\n display: none;\\n }\\n\\n &::before {\\n display: inline-block;\\n margin-right: $caret-spacing;\\n vertical-align: $caret-vertical-align;\\n content: \\\"\\\";\\n @include caret-left();\\n }\\n }\\n\\n &:empty::after {\\n margin-left: 0;\\n }\\n }\\n}\\n\",\"// Horizontal dividers\\n//\\n// Dividers (basically an hr) within dropdowns and nav lists\\n\\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\\n height: 0;\\n margin: $margin-y 0;\\n overflow: hidden;\\n border-top: 1px solid $color;\\n @include deprecate(\\\"The `nav-divider()` mixin\\\", \\\"v4.4.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\",\"// stylelint-disable selector-no-qualifying-type\\n\\n// Make the div behave like a button\\n.btn-group,\\n.btn-group-vertical {\\n position: relative;\\n display: inline-flex;\\n vertical-align: middle; // match .btn alignment given font-size hack above\\n\\n > .btn {\\n position: relative;\\n flex: 1 1 auto;\\n\\n // Bring the hover, focused, and \\\"active\\\" buttons to the front to overlay\\n // the borders properly\\n @include hover() {\\n z-index: 1;\\n }\\n &:focus,\\n &:active,\\n &.active {\\n z-index: 1;\\n }\\n }\\n}\\n\\n// Optional: Group multiple button groups together for a toolbar\\n.btn-toolbar {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-start;\\n\\n .input-group {\\n width: auto;\\n }\\n}\\n\\n.btn-group {\\n // Prevent double borders when buttons are next to each other\\n > .btn:not(:first-child),\\n > .btn-group:not(:first-child) {\\n margin-left: -$btn-border-width;\\n }\\n\\n // Reset rounded corners\\n > .btn:not(:last-child):not(.dropdown-toggle),\\n > .btn-group:not(:last-child) > .btn {\\n @include border-right-radius(0);\\n }\\n\\n > .btn:not(:first-child),\\n > .btn-group:not(:first-child) > .btn {\\n @include border-left-radius(0);\\n }\\n}\\n\\n// Sizing\\n//\\n// Remix the default button sizing classes into new ones for easier manipulation.\\n\\n.btn-group-sm > .btn { @extend .btn-sm; }\\n.btn-group-lg > .btn { @extend .btn-lg; }\\n\\n\\n//\\n// Split button dropdowns\\n//\\n\\n.dropdown-toggle-split {\\n padding-right: $btn-padding-x * .75;\\n padding-left: $btn-padding-x * .75;\\n\\n &::after,\\n .dropup &::after,\\n .dropright &::after {\\n margin-left: 0;\\n }\\n\\n .dropleft &::before {\\n margin-right: 0;\\n }\\n}\\n\\n.btn-sm + .dropdown-toggle-split {\\n padding-right: $btn-padding-x-sm * .75;\\n padding-left: $btn-padding-x-sm * .75;\\n}\\n\\n.btn-lg + .dropdown-toggle-split {\\n padding-right: $btn-padding-x-lg * .75;\\n padding-left: $btn-padding-x-lg * .75;\\n}\\n\\n\\n// The clickable button for toggling the menu\\n// Set the same inset shadow as the :active state\\n.btn-group.show .dropdown-toggle {\\n @include box-shadow($btn-active-box-shadow);\\n\\n // Show no shadow for `.btn-link` since it has no other button styles.\\n &.btn-link {\\n @include box-shadow(none);\\n }\\n}\\n\\n\\n//\\n// Vertical button groups\\n//\\n\\n.btn-group-vertical {\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n\\n > .btn,\\n > .btn-group {\\n width: 100%;\\n }\\n\\n > .btn:not(:first-child),\\n > .btn-group:not(:first-child) {\\n margin-top: -$btn-border-width;\\n }\\n\\n // Reset rounded corners\\n > .btn:not(:last-child):not(.dropdown-toggle),\\n > .btn-group:not(:last-child) > .btn {\\n @include border-bottom-radius(0);\\n }\\n\\n > .btn:not(:first-child),\\n > .btn-group:not(:first-child) > .btn {\\n @include border-top-radius(0);\\n }\\n}\\n\\n\\n// Checkbox and radio options\\n//\\n// In order to support the browser's form validation feedback, powered by the\\n// `required` attribute, we have to \\\"hide\\\" the inputs via `clip`. We cannot use\\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\\n// certain cases which is prevented by using `clip` and `pointer-events`.\\n// This way, we ensure a DOM element is visible to position the popover from.\\n//\\n// See https://github.com/twbs/bootstrap/pull/12794 and\\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\\n\\n.btn-group-toggle {\\n > .btn,\\n > .btn-group > .btn {\\n margin-bottom: 0; // Override default `<label>` value\\n\\n input[type=\\\"radio\\\"],\\n input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n clip: rect(0, 0, 0, 0);\\n pointer-events: none;\\n }\\n }\\n}\\n\",\"// stylelint-disable selector-no-qualifying-type\\n\\n//\\n// Base styles\\n//\\n\\n.input-group {\\n position: relative;\\n display: flex;\\n flex-wrap: wrap; // For form validation feedback\\n align-items: stretch;\\n width: 100%;\\n\\n > .form-control,\\n > .form-control-plaintext,\\n > .custom-select,\\n > .custom-file {\\n position: relative; // For focus state's z-index\\n flex: 1 1 auto;\\n width: 1%;\\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\\n margin-bottom: 0;\\n\\n + .form-control,\\n + .custom-select,\\n + .custom-file {\\n margin-left: -$input-border-width;\\n }\\n }\\n\\n // Bring the \\\"active\\\" form control to the top of surrounding elements\\n > .form-control:focus,\\n > .custom-select:focus,\\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\\n z-index: 3;\\n }\\n\\n // Bring the custom file input above the label\\n > .custom-file .custom-file-input:focus {\\n z-index: 4;\\n }\\n\\n > .form-control,\\n > .custom-select {\\n &:not(:first-child) { @include border-left-radius(0); }\\n }\\n\\n // Custom file inputs have more complex markup, thus requiring different\\n // border-radius overrides.\\n > .custom-file {\\n display: flex;\\n align-items: center;\\n\\n &:not(:last-child) .custom-file-label,\\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\\n }\\n\\n &:not(.has-validation) {\\n > .form-control:not(:last-child),\\n > .custom-select:not(:last-child),\\n > .custom-file:not(:last-child) .custom-file-label,\\n > .custom-file:not(:last-child) .custom-file-label::after {\\n @include border-right-radius(0);\\n }\\n }\\n\\n &.has-validation {\\n > .form-control:nth-last-child(n + 3),\\n > .custom-select:nth-last-child(n + 3),\\n > .custom-file:nth-last-child(n + 3) .custom-file-label,\\n > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\\n @include border-right-radius(0);\\n }\\n }\\n}\\n\\n\\n// Prepend and append\\n//\\n// While it requires one extra layer of HTML for each, dedicated prepend and\\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\\n// 3) support HTML5 form validation.\\n\\n.input-group-prepend,\\n.input-group-append {\\n display: flex;\\n\\n // Ensure buttons are always above inputs for more visually pleasing borders.\\n // This isn't needed for `.input-group-text` since it shares the same border-color\\n // as our inputs.\\n .btn {\\n position: relative;\\n z-index: 2;\\n\\n &:focus {\\n z-index: 3;\\n }\\n }\\n\\n .btn + .btn,\\n .btn + .input-group-text,\\n .input-group-text + .input-group-text,\\n .input-group-text + .btn {\\n margin-left: -$input-border-width;\\n }\\n}\\n\\n.input-group-prepend { margin-right: -$input-border-width; }\\n.input-group-append { margin-left: -$input-border-width; }\\n\\n\\n// Textual addons\\n//\\n// Serves as a catch-all element for any text or radio/checkbox input you wish\\n// to prepend or append to an input.\\n\\n.input-group-text {\\n display: flex;\\n align-items: center;\\n padding: $input-padding-y $input-padding-x;\\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\\n @include font-size($input-font-size); // Match inputs\\n font-weight: $font-weight-normal;\\n line-height: $input-line-height;\\n color: $input-group-addon-color;\\n text-align: center;\\n white-space: nowrap;\\n background-color: $input-group-addon-bg;\\n border: $input-border-width solid $input-group-addon-border-color;\\n @include border-radius($input-border-radius);\\n\\n // Nuke default margins from checkboxes and radios to vertically center within.\\n input[type=\\\"radio\\\"],\\n input[type=\\\"checkbox\\\"] {\\n margin-top: 0;\\n }\\n}\\n\\n\\n// Sizing\\n//\\n// Remix the default form control sizing classes into new ones for easier\\n// manipulation.\\n\\n.input-group-lg > .form-control:not(textarea),\\n.input-group-lg > .custom-select {\\n height: $input-height-lg;\\n}\\n\\n.input-group-lg > .form-control,\\n.input-group-lg > .custom-select,\\n.input-group-lg > .input-group-prepend > .input-group-text,\\n.input-group-lg > .input-group-append > .input-group-text,\\n.input-group-lg > .input-group-prepend > .btn,\\n.input-group-lg > .input-group-append > .btn {\\n padding: $input-padding-y-lg $input-padding-x-lg;\\n @include font-size($input-font-size-lg);\\n line-height: $input-line-height-lg;\\n @include border-radius($input-border-radius-lg);\\n}\\n\\n.input-group-sm > .form-control:not(textarea),\\n.input-group-sm > .custom-select {\\n height: $input-height-sm;\\n}\\n\\n.input-group-sm > .form-control,\\n.input-group-sm > .custom-select,\\n.input-group-sm > .input-group-prepend > .input-group-text,\\n.input-group-sm > .input-group-append > .input-group-text,\\n.input-group-sm > .input-group-prepend > .btn,\\n.input-group-sm > .input-group-append > .btn {\\n padding: $input-padding-y-sm $input-padding-x-sm;\\n @include font-size($input-font-size-sm);\\n line-height: $input-line-height-sm;\\n @include border-radius($input-border-radius-sm);\\n}\\n\\n.input-group-lg > .custom-select,\\n.input-group-sm > .custom-select {\\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\\n}\\n\\n\\n// Prepend and append rounded corners\\n//\\n// These rulesets must come after the sizing ones to properly override sm and lg\\n// border-radius values when extending. They're more specific than we'd like\\n// with the `.input-group >` part, but without it, we cannot override the sizing.\\n\\n\\n.input-group > .input-group-prepend > .btn,\\n.input-group > .input-group-prepend > .input-group-text,\\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\\n @include border-right-radius(0);\\n}\\n\\n.input-group > .input-group-append > .btn,\\n.input-group > .input-group-append > .input-group-text,\\n.input-group > .input-group-prepend:not(:first-child) > .btn,\\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\\n @include border-left-radius(0);\\n}\\n\",\"// Embedded icons from Open Iconic.\\n// Released under MIT and copyright 2014 Waybury.\\n// https://useiconic.com/open\\n\\n\\n// Checkboxes and radios\\n//\\n// Base class takes care of all the key behavioral aspects.\\n\\n.custom-control {\\n position: relative;\\n z-index: 1;\\n display: block;\\n min-height: $font-size-base * $line-height-base;\\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\\n print-color-adjust: exact; // Keep themed appearance for print\\n}\\n\\n.custom-control-inline {\\n display: inline-flex;\\n margin-right: $custom-control-spacer-x;\\n}\\n\\n.custom-control-input {\\n position: absolute;\\n left: 0;\\n z-index: -1; // Put the input behind the label so it doesn't overlay text\\n width: $custom-control-indicator-size;\\n height: ($font-size-base * $line-height-base + $custom-control-indicator-size) * .5;\\n opacity: 0;\\n\\n &:checked ~ .custom-control-label::before {\\n color: $custom-control-indicator-checked-color;\\n border-color: $custom-control-indicator-checked-border-color;\\n @include gradient-bg($custom-control-indicator-checked-bg);\\n @include box-shadow($custom-control-indicator-checked-box-shadow);\\n }\\n\\n &:focus ~ .custom-control-label::before {\\n // the mixin is not used here to make sure there is feedback\\n @if $enable-shadows {\\n box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;\\n } @else {\\n box-shadow: $custom-control-indicator-focus-box-shadow;\\n }\\n }\\n\\n &:focus:not(:checked) ~ .custom-control-label::before {\\n border-color: $custom-control-indicator-focus-border-color;\\n }\\n\\n &:not(:disabled):active ~ .custom-control-label::before {\\n color: $custom-control-indicator-active-color;\\n background-color: $custom-control-indicator-active-bg;\\n border-color: $custom-control-indicator-active-border-color;\\n @include box-shadow($custom-control-indicator-active-box-shadow);\\n }\\n\\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\\n &[disabled],\\n &:disabled {\\n ~ .custom-control-label {\\n color: $custom-control-label-disabled-color;\\n\\n &::before {\\n background-color: $custom-control-indicator-disabled-bg;\\n }\\n }\\n }\\n}\\n\\n// Custom control indicators\\n//\\n// Build the custom controls out of pseudo-elements.\\n\\n.custom-control-label {\\n position: relative;\\n margin-bottom: 0;\\n color: $custom-control-label-color;\\n vertical-align: top;\\n cursor: $custom-control-cursor;\\n\\n // Background-color and (when enabled) gradient\\n &::before {\\n position: absolute;\\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;\\n left: -($custom-control-gutter + $custom-control-indicator-size);\\n display: block;\\n width: $custom-control-indicator-size;\\n height: $custom-control-indicator-size;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: $custom-control-indicator-bg;\\n border: $custom-control-indicator-border-width solid $custom-control-indicator-border-color;\\n @include box-shadow($custom-control-indicator-box-shadow);\\n }\\n\\n // Foreground (icon)\\n &::after {\\n position: absolute;\\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;\\n left: -($custom-control-gutter + $custom-control-indicator-size);\\n display: block;\\n width: $custom-control-indicator-size;\\n height: $custom-control-indicator-size;\\n content: \\\"\\\";\\n background: 50% / #{$custom-control-indicator-bg-size} no-repeat;\\n }\\n}\\n\\n\\n// Checkboxes\\n//\\n// Tweak just a few things for checkboxes.\\n\\n.custom-checkbox {\\n .custom-control-label::before {\\n @include border-radius($custom-checkbox-indicator-border-radius);\\n }\\n\\n .custom-control-input:checked ~ .custom-control-label {\\n &::after {\\n background-image: escape-svg($custom-checkbox-indicator-icon-checked);\\n }\\n }\\n\\n .custom-control-input:indeterminate ~ .custom-control-label {\\n &::before {\\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\\n }\\n &::after {\\n background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\\n }\\n }\\n\\n .custom-control-input:disabled {\\n &:checked ~ .custom-control-label::before {\\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\\n }\\n &:indeterminate ~ .custom-control-label::before {\\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\\n }\\n }\\n}\\n\\n// Radios\\n//\\n// Tweak just a few things for radios.\\n\\n.custom-radio {\\n .custom-control-label::before {\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: $custom-radio-indicator-border-radius;\\n }\\n\\n .custom-control-input:checked ~ .custom-control-label {\\n &::after {\\n background-image: escape-svg($custom-radio-indicator-icon-checked);\\n }\\n }\\n\\n .custom-control-input:disabled {\\n &:checked ~ .custom-control-label::before {\\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\\n }\\n }\\n}\\n\\n\\n// switches\\n//\\n// Tweak a few things for switches\\n\\n.custom-switch {\\n padding-left: $custom-switch-width + $custom-control-gutter;\\n\\n .custom-control-label {\\n &::before {\\n left: -($custom-switch-width + $custom-control-gutter);\\n width: $custom-switch-width;\\n pointer-events: all;\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: $custom-switch-indicator-border-radius;\\n }\\n\\n &::after {\\n top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) * .5, $custom-control-indicator-border-width * 2);\\n left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\\n width: $custom-switch-indicator-size;\\n height: $custom-switch-indicator-size;\\n background-color: $custom-control-indicator-border-color;\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: $custom-switch-indicator-border-radius;\\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\\n }\\n }\\n\\n .custom-control-input:checked ~ .custom-control-label {\\n &::after {\\n background-color: $custom-control-indicator-bg;\\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\\n }\\n }\\n\\n .custom-control-input:disabled {\\n &:checked ~ .custom-control-label::before {\\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\\n }\\n }\\n}\\n\\n\\n// Select\\n//\\n// Replaces the browser default select with a custom one, mostly pulled from\\n// https://primer.github.io/.\\n//\\n\\n.custom-select {\\n display: inline-block;\\n width: 100%;\\n height: $custom-select-height;\\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\\n font-family: $custom-select-font-family;\\n @include font-size($custom-select-font-size);\\n font-weight: $custom-select-font-weight;\\n line-height: $custom-select-line-height;\\n color: $custom-select-color;\\n vertical-align: middle;\\n background: $custom-select-bg $custom-select-background;\\n border: $custom-select-border-width solid $custom-select-border-color;\\n @include border-radius($custom-select-border-radius, 0);\\n @include box-shadow($custom-select-box-shadow);\\n appearance: none;\\n\\n &:focus {\\n border-color: $custom-select-focus-border-color;\\n outline: 0;\\n @if $enable-shadows {\\n @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: $custom-select-focus-box-shadow;\\n }\\n\\n &::-ms-value {\\n // For visual consistency with other platforms/browsers,\\n // suppress the default white text on blue background highlight given to\\n // the selected option text when the (still closed) <select> receives focus\\n // in IE and (under certain conditions) Edge.\\n // See https://github.com/twbs/bootstrap/issues/19398.\\n color: $input-color;\\n background-color: $input-bg;\\n }\\n }\\n\\n &[multiple],\\n &[size]:not([size=\\\"1\\\"]) {\\n height: auto;\\n padding-right: $custom-select-padding-x;\\n background-image: none;\\n }\\n\\n &:disabled {\\n color: $custom-select-disabled-color;\\n background-color: $custom-select-disabled-bg;\\n }\\n\\n // Hides the default caret in IE11\\n &::-ms-expand {\\n display: none;\\n }\\n\\n // Remove outline from select box in FF\\n &:-moz-focusring {\\n color: transparent;\\n text-shadow: 0 0 0 $custom-select-color;\\n }\\n}\\n\\n.custom-select-sm {\\n height: $custom-select-height-sm;\\n padding-top: $custom-select-padding-y-sm;\\n padding-bottom: $custom-select-padding-y-sm;\\n padding-left: $custom-select-padding-x-sm;\\n @include font-size($custom-select-font-size-sm);\\n}\\n\\n.custom-select-lg {\\n height: $custom-select-height-lg;\\n padding-top: $custom-select-padding-y-lg;\\n padding-bottom: $custom-select-padding-y-lg;\\n padding-left: $custom-select-padding-x-lg;\\n @include font-size($custom-select-font-size-lg);\\n}\\n\\n\\n// File\\n//\\n// Custom file input.\\n\\n.custom-file {\\n position: relative;\\n display: inline-block;\\n width: 100%;\\n height: $custom-file-height;\\n margin-bottom: 0;\\n}\\n\\n.custom-file-input {\\n position: relative;\\n z-index: 2;\\n width: 100%;\\n height: $custom-file-height;\\n margin: 0;\\n overflow: hidden;\\n opacity: 0;\\n\\n &:focus ~ .custom-file-label {\\n border-color: $custom-file-focus-border-color;\\n box-shadow: $custom-file-focus-box-shadow;\\n }\\n\\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\\n &[disabled] ~ .custom-file-label,\\n &:disabled ~ .custom-file-label {\\n background-color: $custom-file-disabled-bg;\\n }\\n\\n @each $lang, $value in $custom-file-text {\\n &:lang(#{$lang}) ~ .custom-file-label::after {\\n content: $value;\\n }\\n }\\n\\n ~ .custom-file-label[data-browse]::after {\\n content: attr(data-browse);\\n }\\n}\\n\\n.custom-file-label {\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n z-index: 1;\\n height: $custom-file-height;\\n padding: $custom-file-padding-y $custom-file-padding-x;\\n overflow: hidden;\\n font-family: $custom-file-font-family;\\n font-weight: $custom-file-font-weight;\\n line-height: $custom-file-line-height;\\n color: $custom-file-color;\\n background-color: $custom-file-bg;\\n border: $custom-file-border-width solid $custom-file-border-color;\\n @include border-radius($custom-file-border-radius);\\n @include box-shadow($custom-file-box-shadow);\\n\\n &::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n z-index: 3;\\n display: block;\\n height: $custom-file-height-inner;\\n padding: $custom-file-padding-y $custom-file-padding-x;\\n line-height: $custom-file-line-height;\\n color: $custom-file-button-color;\\n content: \\\"Browse\\\";\\n @include gradient-bg($custom-file-button-bg);\\n border-left: inherit;\\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\\n }\\n}\\n\\n// Range\\n//\\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\\n// elements cannot be mixed. As such, there are no shared styles for focus or\\n// active states on prefixed selectors.\\n\\n.custom-range {\\n width: 100%;\\n height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\\n padding: 0; // Need to reset padding\\n background-color: transparent;\\n appearance: none;\\n\\n &:focus {\\n outline: 0;\\n\\n // Pseudo-elements must be split across multiple rulesets to have an effect.\\n // No box-shadow() mixin for focus accessibility.\\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\\n }\\n\\n &::-moz-focus-outer {\\n border: 0;\\n }\\n\\n &::-webkit-slider-thumb {\\n width: $custom-range-thumb-width;\\n height: $custom-range-thumb-height;\\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) * .5; // Webkit specific\\n @include gradient-bg($custom-range-thumb-bg);\\n border: $custom-range-thumb-border;\\n @include border-radius($custom-range-thumb-border-radius);\\n @include box-shadow($custom-range-thumb-box-shadow);\\n @include transition($custom-forms-transition);\\n appearance: none;\\n\\n &:active {\\n @include gradient-bg($custom-range-thumb-active-bg);\\n }\\n }\\n\\n &::-webkit-slider-runnable-track {\\n width: $custom-range-track-width;\\n height: $custom-range-track-height;\\n color: transparent; // Why?\\n cursor: $custom-range-track-cursor;\\n background-color: $custom-range-track-bg;\\n border-color: transparent;\\n @include border-radius($custom-range-track-border-radius);\\n @include box-shadow($custom-range-track-box-shadow);\\n }\\n\\n &::-moz-range-thumb {\\n width: $custom-range-thumb-width;\\n height: $custom-range-thumb-height;\\n @include gradient-bg($custom-range-thumb-bg);\\n border: $custom-range-thumb-border;\\n @include border-radius($custom-range-thumb-border-radius);\\n @include box-shadow($custom-range-thumb-box-shadow);\\n @include transition($custom-forms-transition);\\n appearance: none;\\n\\n &:active {\\n @include gradient-bg($custom-range-thumb-active-bg);\\n }\\n }\\n\\n &::-moz-range-track {\\n width: $custom-range-track-width;\\n height: $custom-range-track-height;\\n color: transparent;\\n cursor: $custom-range-track-cursor;\\n background-color: $custom-range-track-bg;\\n border-color: transparent; // Firefox specific?\\n @include border-radius($custom-range-track-border-radius);\\n @include box-shadow($custom-range-track-box-shadow);\\n }\\n\\n &::-ms-thumb {\\n width: $custom-range-thumb-width;\\n height: $custom-range-thumb-height;\\n margin-top: 0; // Edge specific\\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\\n @include gradient-bg($custom-range-thumb-bg);\\n border: $custom-range-thumb-border;\\n @include border-radius($custom-range-thumb-border-radius);\\n @include box-shadow($custom-range-thumb-box-shadow);\\n @include transition($custom-forms-transition);\\n appearance: none;\\n\\n &:active {\\n @include gradient-bg($custom-range-thumb-active-bg);\\n }\\n }\\n\\n &::-ms-track {\\n width: $custom-range-track-width;\\n height: $custom-range-track-height;\\n color: transparent;\\n cursor: $custom-range-track-cursor;\\n background-color: transparent;\\n border-color: transparent;\\n border-width: $custom-range-thumb-height * .5;\\n @include box-shadow($custom-range-track-box-shadow);\\n }\\n\\n &::-ms-fill-lower {\\n background-color: $custom-range-track-bg;\\n @include border-radius($custom-range-track-border-radius);\\n }\\n\\n &::-ms-fill-upper {\\n margin-right: 15px; // arbitrary?\\n background-color: $custom-range-track-bg;\\n @include border-radius($custom-range-track-border-radius);\\n }\\n\\n &:disabled {\\n &::-webkit-slider-thumb {\\n background-color: $custom-range-thumb-disabled-bg;\\n }\\n\\n &::-webkit-slider-runnable-track {\\n cursor: default;\\n }\\n\\n &::-moz-range-thumb {\\n background-color: $custom-range-thumb-disabled-bg;\\n }\\n\\n &::-moz-range-track {\\n cursor: default;\\n }\\n\\n &::-ms-thumb {\\n background-color: $custom-range-thumb-disabled-bg;\\n }\\n }\\n}\\n\\n.custom-control-label::before,\\n.custom-file-label,\\n.custom-select {\\n @include transition($custom-forms-transition);\\n}\\n\",\"// Base class\\n//\\n// Kickstart any navigation component with a set of style resets. Works with\\n// `<nav>`s, `<ul>`s or `<ol>`s.\\n\\n.nav {\\n display: flex;\\n flex-wrap: wrap;\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none;\\n}\\n\\n.nav-link {\\n display: block;\\n padding: $nav-link-padding-y $nav-link-padding-x;\\n text-decoration: if($link-decoration == none, null, none);\\n\\n @include hover-focus() {\\n text-decoration: none;\\n }\\n\\n // Disabled state lightens text\\n &.disabled {\\n color: $nav-link-disabled-color;\\n pointer-events: none;\\n cursor: default;\\n }\\n}\\n\\n//\\n// Tabs\\n//\\n\\n.nav-tabs {\\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\\n\\n .nav-link {\\n margin-bottom: -$nav-tabs-border-width;\\n background-color: transparent;\\n border: $nav-tabs-border-width solid transparent;\\n @include border-top-radius($nav-tabs-border-radius);\\n\\n @include hover-focus() {\\n // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\\n isolation: isolate;\\n border-color: $nav-tabs-link-hover-border-color;\\n }\\n\\n &.disabled {\\n color: $nav-link-disabled-color;\\n background-color: transparent;\\n border-color: transparent;\\n }\\n }\\n\\n .nav-link.active,\\n .nav-item.show .nav-link {\\n color: $nav-tabs-link-active-color;\\n background-color: $nav-tabs-link-active-bg;\\n border-color: $nav-tabs-link-active-border-color;\\n }\\n\\n .dropdown-menu {\\n // Make dropdown border overlap tab border\\n margin-top: -$nav-tabs-border-width;\\n // Remove the top rounded corners here since there is a hard edge above the menu\\n @include border-top-radius(0);\\n }\\n}\\n\\n\\n//\\n// Pills\\n//\\n\\n.nav-pills {\\n .nav-link {\\n background: none;\\n border: 0;\\n @include border-radius($nav-pills-border-radius);\\n }\\n\\n .nav-link.active,\\n .show > .nav-link {\\n color: $nav-pills-link-active-color;\\n background-color: $nav-pills-link-active-bg;\\n }\\n}\\n\\n\\n//\\n// Justified variants\\n//\\n\\n.nav-fill {\\n > .nav-link,\\n .nav-item {\\n flex: 1 1 auto;\\n text-align: center;\\n }\\n}\\n\\n.nav-justified {\\n > .nav-link,\\n .nav-item {\\n flex-basis: 0;\\n flex-grow: 1;\\n text-align: center;\\n }\\n}\\n\\n\\n// Tabbable tabs\\n//\\n// Hide tabbable panes to start, show them when `.active`\\n\\n.tab-content {\\n > .tab-pane {\\n display: none;\\n }\\n > .active {\\n display: block;\\n }\\n}\\n\",\"// Contents\\n//\\n// Navbar\\n// Navbar brand\\n// Navbar nav\\n// Navbar text\\n// Navbar divider\\n// Responsive navbar\\n// Navbar position\\n// Navbar themes\\n\\n\\n// Navbar\\n//\\n// Provide a static navbar from which we expand to create full-width, fixed, and\\n// other navbar variations.\\n\\n.navbar {\\n position: relative;\\n display: flex;\\n flex-wrap: wrap; // allow us to do the line break for collapsing content\\n align-items: center;\\n justify-content: space-between; // space out brand from logo\\n padding: $navbar-padding-y $navbar-padding-x;\\n\\n // Because flex properties aren't inherited, we need to redeclare these first\\n // few properties so that content nested within behave properly.\\n %container-flex-properties {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: space-between;\\n }\\n\\n .container,\\n .container-fluid {\\n @extend %container-flex-properties;\\n }\\n\\n @each $breakpoint, $container-max-width in $container-max-widths {\\n > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\\n @extend %container-flex-properties;\\n }\\n }\\n}\\n\\n\\n// Navbar brand\\n//\\n// Used for brand, project, or site names.\\n\\n.navbar-brand {\\n display: inline-block;\\n padding-top: $navbar-brand-padding-y;\\n padding-bottom: $navbar-brand-padding-y;\\n margin-right: $navbar-padding-x;\\n @include font-size($navbar-brand-font-size);\\n line-height: inherit;\\n white-space: nowrap;\\n\\n @include hover-focus() {\\n text-decoration: none;\\n }\\n}\\n\\n\\n// Navbar nav\\n//\\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\\n\\n.navbar-nav {\\n display: flex;\\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none;\\n\\n .nav-link {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n\\n .dropdown-menu {\\n position: static;\\n float: none;\\n }\\n}\\n\\n\\n// Navbar text\\n//\\n//\\n\\n.navbar-text {\\n display: inline-block;\\n padding-top: $nav-link-padding-y;\\n padding-bottom: $nav-link-padding-y;\\n}\\n\\n\\n// Responsive navbar\\n//\\n// Custom styles for responsive collapsing and toggling of navbar contents.\\n// Powered by the collapse Bootstrap JavaScript plugin.\\n\\n// When collapsed, prevent the toggleable navbar contents from appearing in\\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\\n// on the `.navbar` parent.\\n.navbar-collapse {\\n flex-basis: 100%;\\n flex-grow: 1;\\n // For always expanded or extra full navbars, ensure content aligns itself\\n // properly vertically. Can be easily overridden with flex utilities.\\n align-items: center;\\n}\\n\\n// Button for toggling the navbar when in its collapsed state\\n.navbar-toggler {\\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\\n @include font-size($navbar-toggler-font-size);\\n line-height: 1;\\n background-color: transparent; // remove default button style\\n border: $border-width solid transparent; // remove default button style\\n @include border-radius($navbar-toggler-border-radius);\\n\\n @include hover-focus() {\\n text-decoration: none;\\n }\\n}\\n\\n// Keep as a separate element so folks can easily override it with another icon\\n// or image file as needed.\\n.navbar-toggler-icon {\\n display: inline-block;\\n width: 1.5em;\\n height: 1.5em;\\n vertical-align: middle;\\n content: \\\"\\\";\\n background: 50% / 100% 100% no-repeat;\\n}\\n\\n.navbar-nav-scroll {\\n max-height: $navbar-nav-scroll-max-height;\\n overflow-y: auto;\\n}\\n\\n// Generate series of `.navbar-expand-*` responsive classes for configuring\\n// where your navbar collapses.\\n.navbar-expand {\\n @each $breakpoint in map-keys($grid-breakpoints) {\\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\\n $infix: breakpoint-infix($next, $grid-breakpoints);\\n\\n &#{$infix} {\\n @include media-breakpoint-down($breakpoint) {\\n %container-navbar-expand-#{$breakpoint} {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n\\n > .container,\\n > .container-fluid {\\n @extend %container-navbar-expand-#{$breakpoint};\\n }\\n\\n @each $size, $container-max-width in $container-max-widths {\\n > .container#{breakpoint-infix($size, $container-max-widths)} {\\n @extend %container-navbar-expand-#{$breakpoint};\\n }\\n }\\n }\\n\\n @include media-breakpoint-up($next) {\\n flex-flow: row nowrap;\\n justify-content: flex-start;\\n\\n .navbar-nav {\\n flex-direction: row;\\n\\n .dropdown-menu {\\n position: absolute;\\n }\\n\\n .nav-link {\\n padding-right: $navbar-nav-link-padding-x;\\n padding-left: $navbar-nav-link-padding-x;\\n }\\n }\\n\\n // For nesting containers, have to redeclare for alignment purposes\\n %container-nesting-#{$breakpoint} {\\n flex-wrap: nowrap;\\n }\\n\\n > .container,\\n > .container-fluid {\\n @extend %container-nesting-#{$breakpoint};\\n }\\n\\n @each $size, $container-max-width in $container-max-widths {\\n > .container#{breakpoint-infix($size, $container-max-widths)} {\\n @extend %container-nesting-#{$breakpoint};\\n }\\n }\\n\\n .navbar-nav-scroll {\\n overflow: visible;\\n }\\n\\n .navbar-collapse {\\n display: flex !important; // stylelint-disable-line declaration-no-important\\n\\n // Changes flex-bases to auto because of an IE10 bug\\n flex-basis: auto;\\n }\\n\\n .navbar-toggler {\\n display: none;\\n }\\n }\\n }\\n }\\n}\\n\\n\\n// Navbar themes\\n//\\n// Styles for switching between navbars with light or dark background.\\n\\n// Dark links against a light background\\n.navbar-light {\\n .navbar-brand {\\n color: $navbar-light-brand-color;\\n\\n @include hover-focus() {\\n color: $navbar-light-brand-hover-color;\\n }\\n }\\n\\n .navbar-nav {\\n .nav-link {\\n color: $navbar-light-color;\\n\\n @include hover-focus() {\\n color: $navbar-light-hover-color;\\n }\\n\\n &.disabled {\\n color: $navbar-light-disabled-color;\\n }\\n }\\n\\n .show > .nav-link,\\n .active > .nav-link,\\n .nav-link.show,\\n .nav-link.active {\\n color: $navbar-light-active-color;\\n }\\n }\\n\\n .navbar-toggler {\\n color: $navbar-light-color;\\n border-color: $navbar-light-toggler-border-color;\\n }\\n\\n .navbar-toggler-icon {\\n background-image: escape-svg($navbar-light-toggler-icon-bg);\\n }\\n\\n .navbar-text {\\n color: $navbar-light-color;\\n a {\\n color: $navbar-light-active-color;\\n\\n @include hover-focus() {\\n color: $navbar-light-active-color;\\n }\\n }\\n }\\n}\\n\\n// White links against a dark background\\n.navbar-dark {\\n .navbar-brand {\\n color: $navbar-dark-brand-color;\\n\\n @include hover-focus() {\\n color: $navbar-dark-brand-hover-color;\\n }\\n }\\n\\n .navbar-nav {\\n .nav-link {\\n color: $navbar-dark-color;\\n\\n @include hover-focus() {\\n color: $navbar-dark-hover-color;\\n }\\n\\n &.disabled {\\n color: $navbar-dark-disabled-color;\\n }\\n }\\n\\n .show > .nav-link,\\n .active > .nav-link,\\n .nav-link.show,\\n .nav-link.active {\\n color: $navbar-dark-active-color;\\n }\\n }\\n\\n .navbar-toggler {\\n color: $navbar-dark-color;\\n border-color: $navbar-dark-toggler-border-color;\\n }\\n\\n .navbar-toggler-icon {\\n background-image: escape-svg($navbar-dark-toggler-icon-bg);\\n }\\n\\n .navbar-text {\\n color: $navbar-dark-color;\\n a {\\n color: $navbar-dark-active-color;\\n\\n @include hover-focus() {\\n color: $navbar-dark-active-color;\\n }\\n }\\n }\\n}\\n\",\"//\\n// Base styles\\n//\\n\\n.card {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\\n height: $card-height;\\n word-wrap: break-word;\\n background-color: $card-bg;\\n background-clip: border-box;\\n border: $card-border-width solid $card-border-color;\\n @include border-radius($card-border-radius);\\n\\n > hr {\\n margin-right: 0;\\n margin-left: 0;\\n }\\n\\n > .list-group {\\n border-top: inherit;\\n border-bottom: inherit;\\n\\n &:first-child {\\n border-top-width: 0;\\n @include border-top-radius($card-inner-border-radius);\\n }\\n\\n &:last-child {\\n border-bottom-width: 0;\\n @include border-bottom-radius($card-inner-border-radius);\\n }\\n }\\n\\n // Due to specificity of the above selector (`.card > .list-group`), we must\\n // use a child selector here to prevent double borders.\\n > .card-header + .list-group,\\n > .list-group + .card-footer {\\n border-top: 0;\\n }\\n}\\n\\n.card-body {\\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\\n // as much space as possible, ensuring footers are aligned to the bottom.\\n flex: 1 1 auto;\\n // Workaround for the image size bug in IE\\n // See: https://github.com/twbs/bootstrap/pull/28855\\n min-height: 1px;\\n padding: $card-spacer-x;\\n color: $card-color;\\n}\\n\\n.card-title {\\n margin-bottom: $card-spacer-y;\\n}\\n\\n.card-subtitle {\\n margin-top: -$card-spacer-y * .5;\\n margin-bottom: 0;\\n}\\n\\n.card-text:last-child {\\n margin-bottom: 0;\\n}\\n\\n.card-link {\\n @include hover() {\\n text-decoration: none;\\n }\\n\\n + .card-link {\\n margin-left: $card-spacer-x;\\n }\\n}\\n\\n//\\n// Optional textual caps\\n//\\n\\n.card-header {\\n padding: $card-spacer-y $card-spacer-x;\\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\\n color: $card-cap-color;\\n background-color: $card-cap-bg;\\n border-bottom: $card-border-width solid $card-border-color;\\n\\n &:first-child {\\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\\n }\\n}\\n\\n.card-footer {\\n padding: $card-spacer-y $card-spacer-x;\\n color: $card-cap-color;\\n background-color: $card-cap-bg;\\n border-top: $card-border-width solid $card-border-color;\\n\\n &:last-child {\\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\\n }\\n}\\n\\n\\n//\\n// Header navs\\n//\\n\\n.card-header-tabs {\\n margin-right: -$card-spacer-x * .5;\\n margin-bottom: -$card-spacer-y;\\n margin-left: -$card-spacer-x * .5;\\n border-bottom: 0;\\n}\\n\\n.card-header-pills {\\n margin-right: -$card-spacer-x * .5;\\n margin-left: -$card-spacer-x * .5;\\n}\\n\\n// Card image\\n.card-img-overlay {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n padding: $card-img-overlay-padding;\\n @include border-radius($card-inner-border-radius);\\n}\\n\\n.card-img,\\n.card-img-top,\\n.card-img-bottom {\\n flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\\n}\\n\\n.card-img,\\n.card-img-top {\\n @include border-top-radius($card-inner-border-radius);\\n}\\n\\n.card-img,\\n.card-img-bottom {\\n @include border-bottom-radius($card-inner-border-radius);\\n}\\n\\n\\n// Card deck\\n\\n.card-deck {\\n .card {\\n margin-bottom: $card-deck-margin;\\n }\\n\\n @include media-breakpoint-up(sm) {\\n display: flex;\\n flex-flow: row wrap;\\n margin-right: -$card-deck-margin;\\n margin-left: -$card-deck-margin;\\n\\n .card {\\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\\n flex: 1 0 0%;\\n margin-right: $card-deck-margin;\\n margin-bottom: 0; // Override the default\\n margin-left: $card-deck-margin;\\n }\\n }\\n}\\n\\n\\n//\\n// Card groups\\n//\\n\\n.card-group {\\n // The child selector allows nested `.card` within `.card-group`\\n // to display properly.\\n > .card {\\n margin-bottom: $card-group-margin;\\n }\\n\\n @include media-breakpoint-up(sm) {\\n display: flex;\\n flex-flow: row wrap;\\n // The child selector allows nested `.card` within `.card-group`\\n // to display properly.\\n > .card {\\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\\n flex: 1 0 0%;\\n margin-bottom: 0;\\n\\n + .card {\\n margin-left: 0;\\n border-left: 0;\\n }\\n\\n // Handle rounded corners\\n @if $enable-rounded {\\n &:not(:last-child) {\\n @include border-right-radius(0);\\n\\n .card-img-top,\\n .card-header {\\n // stylelint-disable-next-line property-disallowed-list\\n border-top-right-radius: 0;\\n }\\n .card-img-bottom,\\n .card-footer {\\n // stylelint-disable-next-line property-disallowed-list\\n border-bottom-right-radius: 0;\\n }\\n }\\n\\n &:not(:first-child) {\\n @include border-left-radius(0);\\n\\n .card-img-top,\\n .card-header {\\n // stylelint-disable-next-line property-disallowed-list\\n border-top-left-radius: 0;\\n }\\n .card-img-bottom,\\n .card-footer {\\n // stylelint-disable-next-line property-disallowed-list\\n border-bottom-left-radius: 0;\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n\\n//\\n// Columns\\n//\\n\\n.card-columns {\\n .card {\\n margin-bottom: $card-columns-margin;\\n }\\n\\n @include media-breakpoint-up(sm) {\\n column-count: $card-columns-count;\\n column-gap: $card-columns-gap;\\n orphans: 1;\\n widows: 1;\\n\\n .card {\\n display: inline-block; // Don't let them vertically span multiple columns\\n width: 100%; // Don't let their width change\\n }\\n }\\n}\\n\\n\\n//\\n// Accordion\\n//\\n\\n.accordion {\\n overflow-anchor: none;\\n\\n > .card {\\n overflow: hidden;\\n\\n &:not(:last-of-type) {\\n border-bottom: 0;\\n @include border-bottom-radius(0);\\n }\\n\\n &:not(:first-of-type) {\\n @include border-top-radius(0);\\n }\\n\\n > .card-header {\\n @include border-radius(0);\\n margin-bottom: -$card-border-width;\\n }\\n }\\n}\\n\",\".breadcrumb {\\n display: flex;\\n flex-wrap: wrap;\\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\\n margin-bottom: $breadcrumb-margin-bottom;\\n @include font-size($breadcrumb-font-size);\\n list-style: none;\\n background-color: $breadcrumb-bg;\\n @include border-radius($breadcrumb-border-radius);\\n}\\n\\n.breadcrumb-item {\\n // The separator between breadcrumbs (by default, a forward-slash: \\\"/\\\")\\n + .breadcrumb-item {\\n padding-left: $breadcrumb-item-padding;\\n\\n &::before {\\n float: left; // Suppress inline spacings and underlining of the separator\\n padding-right: $breadcrumb-item-padding;\\n color: $breadcrumb-divider-color;\\n content: escape-svg($breadcrumb-divider);\\n }\\n }\\n\\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\\n // without `<ul>`s. The `::before` pseudo-element generates an element\\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\\n //\\n // To trick IE into suppressing the underline, we give the pseudo-element an\\n // underline and then immediately remove it.\\n + .breadcrumb-item:hover::before {\\n text-decoration: underline;\\n }\\n // stylelint-disable-next-line no-duplicate-selectors\\n + .breadcrumb-item:hover::before {\\n text-decoration: none;\\n }\\n\\n &.active {\\n color: $breadcrumb-active-color;\\n }\\n}\\n\",\".pagination {\\n display: flex;\\n @include list-unstyled();\\n @include border-radius();\\n}\\n\\n.page-link {\\n position: relative;\\n display: block;\\n padding: $pagination-padding-y $pagination-padding-x;\\n margin-left: -$pagination-border-width;\\n line-height: $pagination-line-height;\\n color: $pagination-color;\\n text-decoration: if($link-decoration == none, null, none);\\n background-color: $pagination-bg;\\n border: $pagination-border-width solid $pagination-border-color;\\n\\n &:hover {\\n z-index: 2;\\n color: $pagination-hover-color;\\n text-decoration: none;\\n background-color: $pagination-hover-bg;\\n border-color: $pagination-hover-border-color;\\n }\\n\\n &:focus {\\n z-index: 3;\\n outline: $pagination-focus-outline;\\n box-shadow: $pagination-focus-box-shadow;\\n }\\n}\\n\\n.page-item {\\n &:first-child {\\n .page-link {\\n margin-left: 0;\\n @include border-left-radius($border-radius);\\n }\\n }\\n &:last-child {\\n .page-link {\\n @include border-right-radius($border-radius);\\n }\\n }\\n\\n &.active .page-link {\\n z-index: 3;\\n color: $pagination-active-color;\\n background-color: $pagination-active-bg;\\n border-color: $pagination-active-border-color;\\n }\\n\\n &.disabled .page-link {\\n color: $pagination-disabled-color;\\n pointer-events: none;\\n // Opinionated: remove the \\\"hand\\\" cursor set previously for .page-link\\n cursor: auto;\\n background-color: $pagination-disabled-bg;\\n border-color: $pagination-disabled-border-color;\\n }\\n}\\n\\n\\n//\\n// Sizing\\n//\\n\\n.pagination-lg {\\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $pagination-border-radius-lg);\\n}\\n\\n.pagination-sm {\\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $pagination-border-radius-sm);\\n}\\n\",\"// Pagination\\n\\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\\n .page-link {\\n padding: $padding-y $padding-x;\\n @include font-size($font-size);\\n line-height: $line-height;\\n }\\n\\n .page-item {\\n &:first-child {\\n .page-link {\\n @include border-left-radius($border-radius);\\n }\\n }\\n &:last-child {\\n .page-link {\\n @include border-right-radius($border-radius);\\n }\\n }\\n }\\n}\\n\",\"// Base class\\n//\\n// Requires one of the contextual, color modifier classes for `color` and\\n// `background-color`.\\n\\n.badge {\\n display: inline-block;\\n padding: $badge-padding-y $badge-padding-x;\\n @include font-size($badge-font-size);\\n font-weight: $badge-font-weight;\\n line-height: 1;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: baseline;\\n @include border-radius($badge-border-radius);\\n @include transition($badge-transition);\\n\\n @at-root a#{&} {\\n @include hover-focus() {\\n text-decoration: none;\\n }\\n }\\n\\n // Empty badges collapse automatically\\n &:empty {\\n display: none;\\n }\\n}\\n\\n// Quick fix for badges in buttons\\n.btn .badge {\\n position: relative;\\n top: -1px;\\n}\\n\\n// Pill badges\\n//\\n// Make them extra rounded with a modifier to replace v3's badges.\\n\\n.badge-pill {\\n padding-right: $badge-pill-padding-x;\\n padding-left: $badge-pill-padding-x;\\n @include border-radius($badge-pill-border-radius);\\n}\\n\\n// Colors\\n//\\n// Contextual variations (linked badges get darker on :hover).\\n\\n@each $color, $value in $theme-colors {\\n .badge-#{$color} {\\n @include badge-variant($value);\\n }\\n}\\n\",\"@mixin badge-variant($bg) {\\n color: color-yiq($bg);\\n background-color: $bg;\\n\\n @at-root a#{&} {\\n @include hover-focus() {\\n color: color-yiq($bg);\\n background-color: darken($bg, 10%);\\n }\\n\\n &:focus,\\n &.focus {\\n outline: 0;\\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\\n }\\n }\\n}\\n\",\".jumbotron {\\n padding: $jumbotron-padding ($jumbotron-padding * .5);\\n margin-bottom: $jumbotron-padding;\\n color: $jumbotron-color;\\n background-color: $jumbotron-bg;\\n @include border-radius($border-radius-lg);\\n\\n @include media-breakpoint-up(sm) {\\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\\n }\\n}\\n\\n.jumbotron-fluid {\\n padding-right: 0;\\n padding-left: 0;\\n @include border-radius(0);\\n}\\n\",\"//\\n// Base styles\\n//\\n\\n.alert {\\n position: relative;\\n padding: $alert-padding-y $alert-padding-x;\\n margin-bottom: $alert-margin-bottom;\\n border: $alert-border-width solid transparent;\\n @include border-radius($alert-border-radius);\\n}\\n\\n// Headings for larger alerts\\n.alert-heading {\\n // Specified to prevent conflicts of changing $headings-color\\n color: inherit;\\n}\\n\\n// Provide class for links that match alerts\\n.alert-link {\\n font-weight: $alert-link-font-weight;\\n}\\n\\n\\n// Dismissible alerts\\n//\\n// Expand the right padding and account for the close button's positioning.\\n\\n.alert-dismissible {\\n padding-right: $close-font-size + $alert-padding-x * 2;\\n\\n // Adjust close link position\\n .close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n z-index: 2;\\n padding: $alert-padding-y $alert-padding-x;\\n color: inherit;\\n }\\n}\\n\\n\\n// Alternate styles\\n//\\n// Generate contextual modifier classes for colorizing the alert.\\n\\n@each $color, $value in $theme-colors {\\n .alert-#{$color} {\\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\\n }\\n}\\n\",\"@mixin alert-variant($background, $border, $color) {\\n color: $color;\\n @include gradient-bg($background);\\n border-color: $border;\\n\\n hr {\\n border-top-color: darken($border, 5%);\\n }\\n\\n .alert-link {\\n color: darken($color, 10%);\\n }\\n}\\n\",\"// Disable animation if transitions are disabled\\n@if $enable-transitions {\\n @keyframes progress-bar-stripes {\\n from { background-position: $progress-height 0; }\\n to { background-position: 0 0; }\\n }\\n}\\n\\n.progress {\\n display: flex;\\n height: $progress-height;\\n overflow: hidden; // force rounded corners by cropping it\\n line-height: 0;\\n @include font-size($progress-font-size);\\n background-color: $progress-bg;\\n @include border-radius($progress-border-radius);\\n @include box-shadow($progress-box-shadow);\\n}\\n\\n.progress-bar {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n overflow: hidden;\\n color: $progress-bar-color;\\n text-align: center;\\n white-space: nowrap;\\n background-color: $progress-bar-bg;\\n @include transition($progress-bar-transition);\\n}\\n\\n.progress-bar-striped {\\n @include gradient-striped();\\n background-size: $progress-height $progress-height;\\n}\\n\\n@if $enable-transitions {\\n .progress-bar-animated {\\n animation: $progress-bar-animation-timing progress-bar-stripes;\\n\\n @if $enable-prefers-reduced-motion-media-query {\\n @media (prefers-reduced-motion: reduce) {\\n animation: none;\\n }\\n }\\n }\\n}\\n\",\".media {\\n display: flex;\\n align-items: flex-start;\\n}\\n\\n.media-body {\\n flex: 1;\\n}\\n\",\"// Base class\\n//\\n// Easily usable on <ul>, <ol>, or <div>.\\n\\n.list-group {\\n display: flex;\\n flex-direction: column;\\n\\n // No need to set list-style: none; since .list-group-item is block level\\n padding-left: 0; // reset padding because ul and ol\\n margin-bottom: 0;\\n @include border-radius($list-group-border-radius);\\n}\\n\\n\\n// Interactive list items\\n//\\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\\n// list items. Includes an extra `.active` modifier class for selected items.\\n\\n.list-group-item-action {\\n width: 100%; // For `<button>`s (anchors become 100% by default though)\\n color: $list-group-action-color;\\n text-align: inherit; // For `<button>`s (anchors inherit)\\n\\n // Hover state\\n @include hover-focus() {\\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\\n color: $list-group-action-hover-color;\\n text-decoration: none;\\n background-color: $list-group-hover-bg;\\n }\\n\\n &:active {\\n color: $list-group-action-active-color;\\n background-color: $list-group-action-active-bg;\\n }\\n}\\n\\n\\n// Individual list items\\n//\\n// Use on `li`s or `div`s within the `.list-group` parent.\\n\\n.list-group-item {\\n position: relative;\\n display: block;\\n padding: $list-group-item-padding-y $list-group-item-padding-x;\\n color: $list-group-color;\\n text-decoration: if($link-decoration == none, null, none);\\n background-color: $list-group-bg;\\n border: $list-group-border-width solid $list-group-border-color;\\n\\n &:first-child {\\n @include border-top-radius(inherit);\\n }\\n\\n &:last-child {\\n @include border-bottom-radius(inherit);\\n }\\n\\n &.disabled,\\n &:disabled {\\n color: $list-group-disabled-color;\\n pointer-events: none;\\n background-color: $list-group-disabled-bg;\\n }\\n\\n // Include both here for `<a>`s and `<button>`s\\n &.active {\\n z-index: 2; // Place active items above their siblings for proper border styling\\n color: $list-group-active-color;\\n background-color: $list-group-active-bg;\\n border-color: $list-group-active-border-color;\\n }\\n\\n & + & {\\n border-top-width: 0;\\n\\n &.active {\\n margin-top: -$list-group-border-width;\\n border-top-width: $list-group-border-width;\\n }\\n }\\n}\\n\\n\\n// Horizontal\\n//\\n// Change the layout of list group items from vertical (default) to horizontal.\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .list-group-horizontal#{$infix} {\\n flex-direction: row;\\n\\n > .list-group-item {\\n &:first-child {\\n @include border-bottom-left-radius($list-group-border-radius);\\n @include border-top-right-radius(0);\\n }\\n\\n &:last-child {\\n @include border-top-right-radius($list-group-border-radius);\\n @include border-bottom-left-radius(0);\\n }\\n\\n &.active {\\n margin-top: 0;\\n }\\n\\n + .list-group-item {\\n border-top-width: $list-group-border-width;\\n border-left-width: 0;\\n\\n &.active {\\n margin-left: -$list-group-border-width;\\n border-left-width: $list-group-border-width;\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n\\n// Flush list items\\n//\\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\\n// useful within other components (e.g., cards).\\n\\n.list-group-flush {\\n @include border-radius(0);\\n\\n > .list-group-item {\\n border-width: 0 0 $list-group-border-width;\\n\\n &:last-child {\\n border-bottom-width: 0;\\n }\\n }\\n}\\n\\n\\n// Contextual variants\\n//\\n// Add modifier classes to change text and background color on individual items.\\n// Organizationally, this must come after the `:hover` states.\\n\\n@each $color, $value in $theme-colors {\\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\\n}\\n\",\"// List Groups\\n\\n@mixin list-group-item-variant($state, $background, $color) {\\n .list-group-item-#{$state} {\\n color: $color;\\n background-color: $background;\\n\\n &.list-group-item-action {\\n @include hover-focus() {\\n color: $color;\\n background-color: darken($background, 5%);\\n }\\n\\n &.active {\\n color: $white;\\n background-color: $color;\\n border-color: $color;\\n }\\n }\\n }\\n}\\n\",\".close {\\n float: right;\\n @include font-size($close-font-size);\\n font-weight: $close-font-weight;\\n line-height: 1;\\n color: $close-color;\\n text-shadow: $close-text-shadow;\\n opacity: .5;\\n\\n // Override <a>'s hover style\\n @include hover() {\\n color: $close-color;\\n text-decoration: none;\\n }\\n\\n &:not(:disabled):not(.disabled) {\\n @include hover-focus() {\\n opacity: .75;\\n }\\n }\\n}\\n\\n// Additional properties for button version\\n// iOS requires the button element instead of an anchor tag.\\n// If you want the anchor version, it requires `href=\\\"#\\\"`.\\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\\n\\n// stylelint-disable-next-line selector-no-qualifying-type\\nbutton.close {\\n padding: 0;\\n background-color: transparent;\\n border: 0;\\n}\\n\\n// Future-proof disabling of clicks on `<a>` elements\\n\\n// stylelint-disable-next-line selector-no-qualifying-type\\na.close.disabled {\\n pointer-events: none;\\n}\\n\",\".toast {\\n // Prevents from shrinking in IE11, when in a flex container\\n // See https://github.com/twbs/bootstrap/issues/28341\\n flex-basis: $toast-max-width;\\n max-width: $toast-max-width;\\n @include font-size($toast-font-size);\\n color: $toast-color;\\n background-color: $toast-background-color;\\n background-clip: padding-box;\\n border: $toast-border-width solid $toast-border-color;\\n box-shadow: $toast-box-shadow;\\n opacity: 0;\\n @include border-radius($toast-border-radius);\\n\\n &:not(:last-child) {\\n margin-bottom: $toast-padding-x;\\n }\\n\\n &.showing {\\n opacity: 1;\\n }\\n\\n &.show {\\n display: block;\\n opacity: 1;\\n }\\n\\n &.hide {\\n display: none;\\n }\\n}\\n\\n.toast-header {\\n display: flex;\\n align-items: center;\\n padding: $toast-padding-y $toast-padding-x;\\n color: $toast-header-color;\\n background-color: $toast-header-background-color;\\n background-clip: padding-box;\\n border-bottom: $toast-border-width solid $toast-header-border-color;\\n @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\\n}\\n\\n.toast-body {\\n padding: $toast-padding-x; // apply to both vertical and horizontal\\n}\\n\",\"// .modal-open - body class for killing the scroll\\n// .modal - container to scroll within\\n// .modal-dialog - positioning shell for the actual modal\\n// .modal-content - actual modal w/ bg and corners and stuff\\n\\n\\n.modal-open {\\n // Kill the scroll on the body\\n overflow: hidden;\\n\\n .modal {\\n overflow-x: hidden;\\n overflow-y: auto;\\n }\\n}\\n\\n// Container that the modal scrolls within\\n.modal {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: $zindex-modal;\\n display: none;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n // Prevent Chrome on Windows from adding a focus outline. For details, see\\n // https://github.com/twbs/bootstrap/pull/10951.\\n outline: 0;\\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\\n // See also https://github.com/twbs/bootstrap/issues/17695\\n}\\n\\n// Shell div to position the modal with bottom padding\\n.modal-dialog {\\n position: relative;\\n width: auto;\\n margin: $modal-dialog-margin;\\n // allow clicks to pass through for custom click handling to close modal\\n pointer-events: none;\\n\\n // When fading in the modal, animate it to slide down\\n .modal.fade & {\\n @include transition($modal-transition);\\n transform: $modal-fade-transform;\\n }\\n .modal.show & {\\n transform: $modal-show-transform;\\n }\\n\\n // When trying to close, animate focus to scale\\n .modal.modal-static & {\\n transform: $modal-scale-transform;\\n }\\n}\\n\\n.modal-dialog-scrollable {\\n display: flex; // IE10/11\\n max-height: subtract(100%, $modal-dialog-margin * 2);\\n\\n .modal-content {\\n max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\\n overflow: hidden;\\n }\\n\\n .modal-header,\\n .modal-footer {\\n flex-shrink: 0;\\n }\\n\\n .modal-body {\\n overflow-y: auto;\\n }\\n}\\n\\n.modal-dialog-centered {\\n display: flex;\\n align-items: center;\\n min-height: subtract(100%, $modal-dialog-margin * 2);\\n\\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\\n &::before {\\n display: block; // IE10\\n height: subtract(100vh, $modal-dialog-margin * 2);\\n height: min-content; // Reset height to 0 except on IE\\n content: \\\"\\\";\\n }\\n\\n // Ensure `.modal-body` shows scrollbar (IE10/11)\\n &.modal-dialog-scrollable {\\n flex-direction: column;\\n justify-content: center;\\n height: 100%;\\n\\n .modal-content {\\n max-height: none;\\n }\\n\\n &::before {\\n content: none;\\n }\\n }\\n}\\n\\n// Actual modal\\n.modal-content {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\\n // counteract the pointer-events: none; in the .modal-dialog\\n color: $modal-content-color;\\n pointer-events: auto;\\n background-color: $modal-content-bg;\\n background-clip: padding-box;\\n border: $modal-content-border-width solid $modal-content-border-color;\\n @include border-radius($modal-content-border-radius);\\n @include box-shadow($modal-content-box-shadow-xs);\\n // Remove focus outline from opened modal\\n outline: 0;\\n}\\n\\n// Modal background\\n.modal-backdrop {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: $zindex-modal-backdrop;\\n width: 100vw;\\n height: 100vh;\\n background-color: $modal-backdrop-bg;\\n\\n // Fade for backdrop\\n &.fade { opacity: 0; }\\n &.show { opacity: $modal-backdrop-opacity; }\\n}\\n\\n// Modal header\\n// Top section of the modal w/ title and dismiss\\n.modal-header {\\n display: flex;\\n align-items: flex-start; // so the close btn always stays on the upper right corner\\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\\n padding: $modal-header-padding;\\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\\n @include border-top-radius($modal-content-inner-border-radius);\\n\\n .close {\\n padding: $modal-header-padding;\\n // auto on the left force icon to the right even when there is no .modal-title\\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\\n }\\n}\\n\\n// Title text within header\\n.modal-title {\\n margin-bottom: 0;\\n line-height: $modal-title-line-height;\\n}\\n\\n// Modal body\\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\\n.modal-body {\\n position: relative;\\n // Enable `flex-grow: 1` so that the body take up as much space as possible\\n // when there should be a fixed height on `.modal-dialog`.\\n flex: 1 1 auto;\\n padding: $modal-inner-padding;\\n}\\n\\n// Footer (for actions)\\n.modal-footer {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center; // vertically center\\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\\n padding: $modal-inner-padding - $modal-footer-margin-between * .5;\\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\\n @include border-bottom-radius($modal-content-inner-border-radius);\\n\\n // Place margin between footer elements\\n // This solution is far from ideal because of the universal selector usage,\\n // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\\n > * {\\n margin: $modal-footer-margin-between * .5;\\n }\\n}\\n\\n// Measure scrollbar width for padding body during modal show/hide\\n.modal-scrollbar-measure {\\n position: absolute;\\n top: -9999px;\\n width: 50px;\\n height: 50px;\\n overflow: scroll;\\n}\\n\\n// Scale up the modal\\n@include media-breakpoint-up(sm) {\\n // Automatically set modal's width for larger viewports\\n .modal-dialog {\\n max-width: $modal-md;\\n margin: $modal-dialog-margin-y-sm-up auto;\\n }\\n\\n .modal-dialog-scrollable {\\n max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\\n\\n .modal-content {\\n max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\\n }\\n }\\n\\n .modal-dialog-centered {\\n min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\\n\\n &::before {\\n height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\\n height: min-content;\\n }\\n }\\n\\n .modal-content {\\n @include box-shadow($modal-content-box-shadow-sm-up);\\n }\\n\\n .modal-sm { max-width: $modal-sm; }\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .modal-lg,\\n .modal-xl {\\n max-width: $modal-lg;\\n }\\n}\\n\\n@include media-breakpoint-up(xl) {\\n .modal-xl { max-width: $modal-xl; }\\n}\\n\",\"// Base class\\n.tooltip {\\n position: absolute;\\n z-index: $zindex-tooltip;\\n display: block;\\n margin: $tooltip-margin;\\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\\n // So reset our font and text properties to avoid inheriting weird values.\\n @include reset-text();\\n @include font-size($tooltip-font-size);\\n // Allow breaking very long words so they don't overflow the tooltip's bounds\\n word-wrap: break-word;\\n opacity: 0;\\n\\n &.show { opacity: $tooltip-opacity; }\\n\\n .arrow {\\n position: absolute;\\n display: block;\\n width: $tooltip-arrow-width;\\n height: $tooltip-arrow-height;\\n\\n &::before {\\n position: absolute;\\n content: \\\"\\\";\\n border-color: transparent;\\n border-style: solid;\\n }\\n }\\n}\\n\\n.bs-tooltip-top {\\n padding: $tooltip-arrow-height 0;\\n\\n .arrow {\\n bottom: 0;\\n\\n &::before {\\n top: 0;\\n border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;\\n border-top-color: $tooltip-arrow-color;\\n }\\n }\\n}\\n\\n.bs-tooltip-right {\\n padding: 0 $tooltip-arrow-height;\\n\\n .arrow {\\n left: 0;\\n width: $tooltip-arrow-height;\\n height: $tooltip-arrow-width;\\n\\n &::before {\\n right: 0;\\n border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;\\n border-right-color: $tooltip-arrow-color;\\n }\\n }\\n}\\n\\n.bs-tooltip-bottom {\\n padding: $tooltip-arrow-height 0;\\n\\n .arrow {\\n top: 0;\\n\\n &::before {\\n bottom: 0;\\n border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;\\n border-bottom-color: $tooltip-arrow-color;\\n }\\n }\\n}\\n\\n.bs-tooltip-left {\\n padding: 0 $tooltip-arrow-height;\\n\\n .arrow {\\n right: 0;\\n width: $tooltip-arrow-height;\\n height: $tooltip-arrow-width;\\n\\n &::before {\\n left: 0;\\n border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;\\n border-left-color: $tooltip-arrow-color;\\n }\\n }\\n}\\n\\n.bs-tooltip-auto {\\n &[x-placement^=\\\"top\\\"] {\\n @extend .bs-tooltip-top;\\n }\\n &[x-placement^=\\\"right\\\"] {\\n @extend .bs-tooltip-right;\\n }\\n &[x-placement^=\\\"bottom\\\"] {\\n @extend .bs-tooltip-bottom;\\n }\\n &[x-placement^=\\\"left\\\"] {\\n @extend .bs-tooltip-left;\\n }\\n}\\n\\n// Wrapper for the tooltip content\\n.tooltip-inner {\\n max-width: $tooltip-max-width;\\n padding: $tooltip-padding-y $tooltip-padding-x;\\n color: $tooltip-color;\\n text-align: center;\\n background-color: $tooltip-bg;\\n @include border-radius($tooltip-border-radius);\\n}\\n\",\"@mixin reset-text() {\\n font-family: $font-family-base;\\n // We deliberately do NOT reset font-size or word-wrap.\\n font-style: normal;\\n font-weight: $font-weight-normal;\\n line-height: $line-height-base;\\n text-align: left; // Fallback for where `start` is not supported\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n white-space: normal;\\n word-spacing: normal;\\n line-break: auto;\\n}\\n\",\".popover {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: $zindex-popover;\\n display: block;\\n max-width: $popover-max-width;\\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\\n // So reset our font and text properties to avoid inheriting weird values.\\n @include reset-text();\\n @include font-size($popover-font-size);\\n // Allow breaking very long words so they don't overflow the popover's bounds\\n word-wrap: break-word;\\n background-color: $popover-bg;\\n background-clip: padding-box;\\n border: $popover-border-width solid $popover-border-color;\\n @include border-radius($popover-border-radius);\\n @include box-shadow($popover-box-shadow);\\n\\n .arrow {\\n position: absolute;\\n display: block;\\n width: $popover-arrow-width;\\n height: $popover-arrow-height;\\n margin: 0 $popover-border-radius;\\n\\n &::before,\\n &::after {\\n position: absolute;\\n display: block;\\n content: \\\"\\\";\\n border-color: transparent;\\n border-style: solid;\\n }\\n }\\n}\\n\\n.bs-popover-top {\\n margin-bottom: $popover-arrow-height;\\n\\n > .arrow {\\n bottom: subtract(-$popover-arrow-height, $popover-border-width);\\n\\n &::before {\\n bottom: 0;\\n border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;\\n border-top-color: $popover-arrow-outer-color;\\n }\\n\\n &::after {\\n bottom: $popover-border-width;\\n border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;\\n border-top-color: $popover-arrow-color;\\n }\\n }\\n}\\n\\n.bs-popover-right {\\n margin-left: $popover-arrow-height;\\n\\n > .arrow {\\n left: subtract(-$popover-arrow-height, $popover-border-width);\\n width: $popover-arrow-height;\\n height: $popover-arrow-width;\\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\\n\\n &::before {\\n left: 0;\\n border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;\\n border-right-color: $popover-arrow-outer-color;\\n }\\n\\n &::after {\\n left: $popover-border-width;\\n border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;\\n border-right-color: $popover-arrow-color;\\n }\\n }\\n}\\n\\n.bs-popover-bottom {\\n margin-top: $popover-arrow-height;\\n\\n > .arrow {\\n top: subtract(-$popover-arrow-height, $popover-border-width);\\n\\n &::before {\\n top: 0;\\n border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);\\n border-bottom-color: $popover-arrow-outer-color;\\n }\\n\\n &::after {\\n top: $popover-border-width;\\n border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);\\n border-bottom-color: $popover-arrow-color;\\n }\\n }\\n\\n // This will remove the popover-header's border just below the arrow\\n .popover-header::before {\\n position: absolute;\\n top: 0;\\n left: 50%;\\n display: block;\\n width: $popover-arrow-width;\\n margin-left: -$popover-arrow-width * .5;\\n content: \\\"\\\";\\n border-bottom: $popover-border-width solid $popover-header-bg;\\n }\\n}\\n\\n.bs-popover-left {\\n margin-right: $popover-arrow-height;\\n\\n > .arrow {\\n right: subtract(-$popover-arrow-height, $popover-border-width);\\n width: $popover-arrow-height;\\n height: $popover-arrow-width;\\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\\n\\n &::before {\\n right: 0;\\n border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;\\n border-left-color: $popover-arrow-outer-color;\\n }\\n\\n &::after {\\n right: $popover-border-width;\\n border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;\\n border-left-color: $popover-arrow-color;\\n }\\n }\\n}\\n\\n.bs-popover-auto {\\n &[x-placement^=\\\"top\\\"] {\\n @extend .bs-popover-top;\\n }\\n &[x-placement^=\\\"right\\\"] {\\n @extend .bs-popover-right;\\n }\\n &[x-placement^=\\\"bottom\\\"] {\\n @extend .bs-popover-bottom;\\n }\\n &[x-placement^=\\\"left\\\"] {\\n @extend .bs-popover-left;\\n }\\n}\\n\\n\\n// Offset the popover to account for the popover arrow\\n.popover-header {\\n padding: $popover-header-padding-y $popover-header-padding-x;\\n margin-bottom: 0; // Reset the default from Reboot\\n @include font-size($font-size-base);\\n color: $popover-header-color;\\n background-color: $popover-header-bg;\\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\\n @include border-top-radius($popover-inner-border-radius);\\n\\n &:empty {\\n display: none;\\n }\\n}\\n\\n.popover-body {\\n padding: $popover-body-padding-y $popover-body-padding-x;\\n color: $popover-body-color;\\n}\\n\",\"// Notes on the classes:\\n//\\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\\n// we're preventing all actions instead\\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\\n// the active slide is heading.\\n// 3. .active.carousel-item is the current slide.\\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\\n// slide in its in-transition state. Only one of these occurs at a time.\\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\\n// is the upcoming slide in transition.\\n\\n.carousel {\\n position: relative;\\n}\\n\\n.carousel.pointer-event {\\n touch-action: pan-y;\\n}\\n\\n.carousel-inner {\\n position: relative;\\n width: 100%;\\n overflow: hidden;\\n @include clearfix();\\n}\\n\\n.carousel-item {\\n position: relative;\\n display: none;\\n float: left;\\n width: 100%;\\n margin-right: -100%;\\n backface-visibility: hidden;\\n @include transition($carousel-transition);\\n}\\n\\n.carousel-item.active,\\n.carousel-item-next,\\n.carousel-item-prev {\\n display: block;\\n}\\n\\n.carousel-item-next:not(.carousel-item-left),\\n.active.carousel-item-right {\\n transform: translateX(100%);\\n}\\n\\n.carousel-item-prev:not(.carousel-item-right),\\n.active.carousel-item-left {\\n transform: translateX(-100%);\\n}\\n\\n\\n//\\n// Alternate transitions\\n//\\n\\n.carousel-fade {\\n .carousel-item {\\n opacity: 0;\\n transition-property: opacity;\\n transform: none;\\n }\\n\\n .carousel-item.active,\\n .carousel-item-next.carousel-item-left,\\n .carousel-item-prev.carousel-item-right {\\n z-index: 1;\\n opacity: 1;\\n }\\n\\n .active.carousel-item-left,\\n .active.carousel-item-right {\\n z-index: 0;\\n opacity: 0;\\n @include transition(opacity 0s $carousel-transition-duration);\\n }\\n}\\n\\n\\n//\\n// Left/right controls for nav\\n//\\n\\n.carousel-control-prev,\\n.carousel-control-next {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n z-index: 1;\\n // Use flex for alignment (1-3)\\n display: flex; // 1. allow flex styles\\n align-items: center; // 2. vertically center contents\\n justify-content: center; // 3. horizontally center contents\\n width: $carousel-control-width;\\n padding: 0;\\n color: $carousel-control-color;\\n text-align: center;\\n background: none;\\n border: 0;\\n opacity: $carousel-control-opacity;\\n @include transition($carousel-control-transition);\\n\\n // Hover/focus state\\n @include hover-focus() {\\n color: $carousel-control-color;\\n text-decoration: none;\\n outline: 0;\\n opacity: $carousel-control-hover-opacity;\\n }\\n}\\n.carousel-control-prev {\\n left: 0;\\n @if $enable-gradients {\\n background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\\n }\\n}\\n.carousel-control-next {\\n right: 0;\\n @if $enable-gradients {\\n background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\\n }\\n}\\n\\n// Icons for within\\n.carousel-control-prev-icon,\\n.carousel-control-next-icon {\\n display: inline-block;\\n width: $carousel-control-icon-width;\\n height: $carousel-control-icon-width;\\n background: 50% / 100% 100% no-repeat;\\n}\\n.carousel-control-prev-icon {\\n background-image: escape-svg($carousel-control-prev-icon-bg);\\n}\\n.carousel-control-next-icon {\\n background-image: escape-svg($carousel-control-next-icon-bg);\\n}\\n\\n\\n// Optional indicator pips\\n//\\n// Add an ordered list with the following class and add a list item for each\\n// slide your carousel holds.\\n\\n.carousel-indicators {\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 15;\\n display: flex;\\n justify-content: center;\\n padding-left: 0; // override <ol> default\\n // Use the .carousel-control's width as margin so we don't overlay those\\n margin-right: $carousel-control-width;\\n margin-left: $carousel-control-width;\\n list-style: none;\\n\\n li {\\n box-sizing: content-box;\\n flex: 0 1 auto;\\n width: $carousel-indicator-width;\\n height: $carousel-indicator-height;\\n margin-right: $carousel-indicator-spacer;\\n margin-left: $carousel-indicator-spacer;\\n text-indent: -999px;\\n cursor: pointer;\\n background-color: $carousel-indicator-active-bg;\\n background-clip: padding-box;\\n // Use transparent borders to increase the hit area by 10px on top and bottom.\\n border-top: $carousel-indicator-hit-area-height solid transparent;\\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\\n opacity: .5;\\n @include transition($carousel-indicator-transition);\\n }\\n\\n .active {\\n opacity: 1;\\n }\\n}\\n\\n\\n// Optional captions\\n//\\n//\\n\\n.carousel-caption {\\n position: absolute;\\n right: (100% - $carousel-caption-width) * .5;\\n bottom: 20px;\\n left: (100% - $carousel-caption-width) * .5;\\n z-index: 10;\\n padding-top: 20px;\\n padding-bottom: 20px;\\n color: $carousel-caption-color;\\n text-align: center;\\n}\\n\",\"@mixin clearfix() {\\n &::after {\\n display: block;\\n clear: both;\\n content: \\\"\\\";\\n }\\n}\\n\",\"//\\n// Rotating border\\n//\\n\\n@keyframes spinner-border {\\n to { transform: rotate(360deg); }\\n}\\n\\n.spinner-border {\\n display: inline-block;\\n width: $spinner-width;\\n height: $spinner-height;\\n vertical-align: $spinner-vertical-align;\\n border: $spinner-border-width solid currentcolor;\\n border-right-color: transparent;\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: 50%;\\n animation: .75s linear infinite spinner-border;\\n}\\n\\n.spinner-border-sm {\\n width: $spinner-width-sm;\\n height: $spinner-height-sm;\\n border-width: $spinner-border-width-sm;\\n}\\n\\n//\\n// Growing circle\\n//\\n\\n@keyframes spinner-grow {\\n 0% {\\n transform: scale(0);\\n }\\n 50% {\\n opacity: 1;\\n transform: none;\\n }\\n}\\n\\n.spinner-grow {\\n display: inline-block;\\n width: $spinner-width;\\n height: $spinner-height;\\n vertical-align: $spinner-vertical-align;\\n background-color: currentcolor;\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: 50%;\\n opacity: 0;\\n animation: .75s linear infinite spinner-grow;\\n}\\n\\n.spinner-grow-sm {\\n width: $spinner-width-sm;\\n height: $spinner-height-sm;\\n}\\n\\n@if $enable-prefers-reduced-motion-media-query {\\n @media (prefers-reduced-motion: reduce) {\\n .spinner-border,\\n .spinner-grow {\\n animation-duration: 1.5s;\\n }\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n.align-baseline { vertical-align: baseline !important; } // Browser default\\n.align-top { vertical-align: top !important; }\\n.align-middle { vertical-align: middle !important; }\\n.align-bottom { vertical-align: bottom !important; }\\n.align-text-bottom { vertical-align: text-bottom !important; }\\n.align-text-top { vertical-align: text-top !important; }\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Contextual backgrounds\\n\\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\\n #{$parent} {\\n background-color: $color !important;\\n }\\n a#{$parent},\\n button#{$parent} {\\n @include hover-focus() {\\n background-color: darken($color, 10%) !important;\\n }\\n }\\n @include deprecate(\\\"The `bg-variant` mixin\\\", \\\"v4.4.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\\n #{$parent} {\\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\\n }\\n @include deprecate(\\\"The `bg-gradient-variant` mixin\\\", \\\"v4.5.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n@each $color, $value in $theme-colors {\\n @include bg-variant(\\\".bg-#{$color}\\\", $value, true);\\n}\\n\\n@if $enable-gradients {\\n @each $color, $value in $theme-colors {\\n @include bg-gradient-variant(\\\".bg-gradient-#{$color}\\\", $value, true);\\n }\\n}\\n\\n.bg-white {\\n background-color: $white !important;\\n}\\n\\n.bg-transparent {\\n background-color: transparent !important;\\n}\\n\",\"// stylelint-disable property-disallowed-list, declaration-no-important\\n\\n//\\n// Border\\n//\\n\\n.border { border: $border-width solid $border-color !important; }\\n.border-top { border-top: $border-width solid $border-color !important; }\\n.border-right { border-right: $border-width solid $border-color !important; }\\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\\n.border-left { border-left: $border-width solid $border-color !important; }\\n\\n.border-0 { border: 0 !important; }\\n.border-top-0 { border-top: 0 !important; }\\n.border-right-0 { border-right: 0 !important; }\\n.border-bottom-0 { border-bottom: 0 !important; }\\n.border-left-0 { border-left: 0 !important; }\\n\\n@each $color, $value in $theme-colors {\\n .border-#{$color} {\\n border-color: $value !important;\\n }\\n}\\n\\n.border-white {\\n border-color: $white !important;\\n}\\n\\n//\\n// Border-radius\\n//\\n\\n.rounded-sm {\\n border-radius: $border-radius-sm !important;\\n}\\n\\n.rounded {\\n border-radius: $border-radius !important;\\n}\\n\\n.rounded-top {\\n border-top-left-radius: $border-radius !important;\\n border-top-right-radius: $border-radius !important;\\n}\\n\\n.rounded-right {\\n border-top-right-radius: $border-radius !important;\\n border-bottom-right-radius: $border-radius !important;\\n}\\n\\n.rounded-bottom {\\n border-bottom-right-radius: $border-radius !important;\\n border-bottom-left-radius: $border-radius !important;\\n}\\n\\n.rounded-left {\\n border-top-left-radius: $border-radius !important;\\n border-bottom-left-radius: $border-radius !important;\\n}\\n\\n.rounded-lg {\\n border-radius: $border-radius-lg !important;\\n}\\n\\n.rounded-circle {\\n border-radius: 50% !important;\\n}\\n\\n.rounded-pill {\\n border-radius: $rounded-pill !important;\\n}\\n\\n.rounded-0 {\\n border-radius: 0 !important;\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n//\\n// Utilities for common `display` values\\n//\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n @each $value in $displays {\\n .d#{$infix}-#{$value} { display: $value !important; }\\n }\\n }\\n}\\n\\n\\n//\\n// Utilities for toggling `display` in print\\n//\\n\\n@media print {\\n @each $value in $displays {\\n .d-print-#{$value} { display: $value !important; }\\n }\\n}\\n\",\"// Credit: Nicolas Gallagher and SUIT CSS.\\n\\n.embed-responsive {\\n position: relative;\\n display: block;\\n width: 100%;\\n padding: 0;\\n overflow: hidden;\\n\\n &::before {\\n display: block;\\n content: \\\"\\\";\\n }\\n\\n .embed-responsive-item,\\n iframe,\\n embed,\\n object,\\n video {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 0;\\n }\\n}\\n\\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\\n\\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\\n &::before {\\n padding-top: percentage(divide($embed-responsive-aspect-ratio-y, $embed-responsive-aspect-ratio-x));\\n }\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Flex variation\\n//\\n// Custom styles for additional flex alignment options.\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .flex#{$infix}-row { flex-direction: row !important; }\\n .flex#{$infix}-column { flex-direction: column !important; }\\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\\n\\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\\n\\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\\n .justify-content#{$infix}-center { justify-content: center !important; }\\n .justify-content#{$infix}-between { justify-content: space-between !important; }\\n .justify-content#{$infix}-around { justify-content: space-around !important; }\\n\\n .align-items#{$infix}-start { align-items: flex-start !important; }\\n .align-items#{$infix}-end { align-items: flex-end !important; }\\n .align-items#{$infix}-center { align-items: center !important; }\\n .align-items#{$infix}-baseline { align-items: baseline !important; }\\n .align-items#{$infix}-stretch { align-items: stretch !important; }\\n\\n .align-content#{$infix}-start { align-content: flex-start !important; }\\n .align-content#{$infix}-end { align-content: flex-end !important; }\\n .align-content#{$infix}-center { align-content: center !important; }\\n .align-content#{$infix}-between { align-content: space-between !important; }\\n .align-content#{$infix}-around { align-content: space-around !important; }\\n .align-content#{$infix}-stretch { align-content: stretch !important; }\\n\\n .align-self#{$infix}-auto { align-self: auto !important; }\\n .align-self#{$infix}-start { align-self: flex-start !important; }\\n .align-self#{$infix}-end { align-self: flex-end !important; }\\n .align-self#{$infix}-center { align-self: center !important; }\\n .align-self#{$infix}-baseline { align-self: baseline !important; }\\n .align-self#{$infix}-stretch { align-self: stretch !important; }\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .float#{$infix}-left { float: left !important; }\\n .float#{$infix}-right { float: right !important; }\\n .float#{$infix}-none { float: none !important; }\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n@each $value in $user-selects {\\n .user-select-#{$value} { user-select: $value !important; }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n@each $value in $overflows {\\n .overflow-#{$value} { overflow: $value !important; }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Common values\\n@each $position in $positions {\\n .position-#{$position} { position: $position !important; }\\n}\\n\\n// Shorthand\\n\\n.fixed-top {\\n position: fixed;\\n top: 0;\\n right: 0;\\n left: 0;\\n z-index: $zindex-fixed;\\n}\\n\\n.fixed-bottom {\\n position: fixed;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: $zindex-fixed;\\n}\\n\\n.sticky-top {\\n @supports (position: sticky) {\\n position: sticky;\\n top: 0;\\n z-index: $zindex-sticky;\\n }\\n}\\n\",\"//\\n// Screenreaders\\n//\\n\\n.sr-only {\\n @include sr-only();\\n}\\n\\n.sr-only-focusable {\\n @include sr-only-focusable();\\n}\\n\",\"// Only display content to screen readers\\n//\\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\\n\\n@mixin sr-only() {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border: 0;\\n}\\n\\n// Use in conjunction with .sr-only to only display content when it's focused.\\n//\\n// Useful for \\\"Skip to main content\\\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\\n//\\n// Credit: HTML5 Boilerplate\\n\\n@mixin sr-only-focusable() {\\n &:active,\\n &:focus {\\n position: static;\\n width: auto;\\n height: auto;\\n overflow: visible;\\n clip: auto;\\n white-space: normal;\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\\n.shadow { box-shadow: $box-shadow !important; }\\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\\n.shadow-none { box-shadow: none !important; }\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Width and height\\n\\n@each $prop, $abbrev in (width: w, height: h) {\\n @each $size, $length in $sizes {\\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\\n }\\n}\\n\\n.mw-100 { max-width: 100% !important; }\\n.mh-100 { max-height: 100% !important; }\\n\\n// Viewport additional helpers\\n\\n.min-vw-100 { min-width: 100vw !important; }\\n.min-vh-100 { min-height: 100vh !important; }\\n\\n.vw-100 { width: 100vw !important; }\\n.vh-100 { height: 100vh !important; }\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Margin and Padding\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n @each $prop, $abbrev in (margin: m, padding: p) {\\n @each $size, $length in $spacers {\\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\\n .#{$abbrev}t#{$infix}-#{$size},\\n .#{$abbrev}y#{$infix}-#{$size} {\\n #{$prop}-top: $length !important;\\n }\\n .#{$abbrev}r#{$infix}-#{$size},\\n .#{$abbrev}x#{$infix}-#{$size} {\\n #{$prop}-right: $length !important;\\n }\\n .#{$abbrev}b#{$infix}-#{$size},\\n .#{$abbrev}y#{$infix}-#{$size} {\\n #{$prop}-bottom: $length !important;\\n }\\n .#{$abbrev}l#{$infix}-#{$size},\\n .#{$abbrev}x#{$infix}-#{$size} {\\n #{$prop}-left: $length !important;\\n }\\n }\\n }\\n\\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\\n @each $size, $length in $spacers {\\n @if \\\"#{$size}\\\" != \\\"0\\\" {\\n .m#{$infix}-n#{$size} { margin: -$length !important; }\\n .mt#{$infix}-n#{$size},\\n .my#{$infix}-n#{$size} {\\n margin-top: -$length !important;\\n }\\n .mr#{$infix}-n#{$size},\\n .mx#{$infix}-n#{$size} {\\n margin-right: -$length !important;\\n }\\n .mb#{$infix}-n#{$size},\\n .my#{$infix}-n#{$size} {\\n margin-bottom: -$length !important;\\n }\\n .ml#{$infix}-n#{$size},\\n .mx#{$infix}-n#{$size} {\\n margin-left: -$length !important;\\n }\\n }\\n }\\n\\n // Some special margin utils\\n .m#{$infix}-auto { margin: auto !important; }\\n .mt#{$infix}-auto,\\n .my#{$infix}-auto {\\n margin-top: auto !important;\\n }\\n .mr#{$infix}-auto,\\n .mx#{$infix}-auto {\\n margin-right: auto !important;\\n }\\n .mb#{$infix}-auto,\\n .my#{$infix}-auto {\\n margin-bottom: auto !important;\\n }\\n .ml#{$infix}-auto,\\n .mx#{$infix}-auto {\\n margin-left: auto !important;\\n }\\n }\\n}\\n\",\"//\\n// Stretched link\\n//\\n\\n.stretched-link {\\n &::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1;\\n // Just in case `pointer-events: none` is set on a parent\\n pointer-events: auto;\\n content: \\\"\\\";\\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\\n background-color: rgba(0, 0, 0, 0);\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n//\\n// Text\\n//\\n\\n.text-monospace { font-family: $font-family-monospace !important; }\\n\\n// Alignment\\n\\n.text-justify { text-align: justify !important; }\\n.text-wrap { white-space: normal !important; }\\n.text-nowrap { white-space: nowrap !important; }\\n.text-truncate { @include text-truncate(); }\\n\\n// Responsive alignment\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .text#{$infix}-left { text-align: left !important; }\\n .text#{$infix}-right { text-align: right !important; }\\n .text#{$infix}-center { text-align: center !important; }\\n }\\n}\\n\\n// Transformation\\n\\n.text-lowercase { text-transform: lowercase !important; }\\n.text-uppercase { text-transform: uppercase !important; }\\n.text-capitalize { text-transform: capitalize !important; }\\n\\n// Weight and italics\\n\\n.font-weight-light { font-weight: $font-weight-light !important; }\\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\\n.font-weight-normal { font-weight: $font-weight-normal !important; }\\n.font-weight-bold { font-weight: $font-weight-bold !important; }\\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\\n.font-italic { font-style: italic !important; }\\n\\n// Contextual colors\\n\\n.text-white { color: $white !important; }\\n\\n@each $color, $value in $theme-colors {\\n @include text-emphasis-variant(\\\".text-#{$color}\\\", $value, true);\\n}\\n\\n.text-body { color: $body-color !important; }\\n.text-muted { color: $text-muted !important; }\\n\\n.text-black-50 { color: rgba($black, .5) !important; }\\n.text-white-50 { color: rgba($white, .5) !important; }\\n\\n// Misc\\n\\n.text-hide {\\n @include text-hide($ignore-warning: true);\\n}\\n\\n.text-decoration-none { text-decoration: none !important; }\\n\\n.text-break {\\n word-break: break-word !important; // Deprecated, but avoids issues with flex containers\\n word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy\\n}\\n\\n// Reset\\n\\n.text-reset { color: inherit !important; }\\n\",\"// Text truncate\\n// Requires inline-block or block for proper styling\\n\\n@mixin text-truncate() {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Typography\\n\\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\\n #{$parent} {\\n color: $color !important;\\n }\\n @if $emphasized-link-hover-darken-percentage != 0 {\\n a#{$parent} {\\n @include hover-focus() {\\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\\n }\\n }\\n }\\n @include deprecate(\\\"`text-emphasis-variant()`\\\", \\\"v4.4.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\",\"// CSS image replacement\\n@mixin text-hide($ignore-warning: false) {\\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\\n font: 0/0 a;\\n color: transparent;\\n text-shadow: none;\\n background-color: transparent;\\n border: 0;\\n\\n @include deprecate(\\\"`text-hide()`\\\", \\\"v4.1.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n//\\n// Visibility utilities\\n//\\n\\n.visible {\\n visibility: visible !important;\\n}\\n\\n.invisible {\\n visibility: hidden !important;\\n}\\n\",\"// stylelint-disable declaration-no-important, selector-no-qualifying-type\\n\\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\\n\\n// ==========================================================================\\n// Print styles.\\n// Inlined to avoid the additional HTTP request:\\n// https://www.phpied.com/delay-loading-your-print-css/\\n// ==========================================================================\\n\\n@if $enable-print-styles {\\n @media print {\\n *,\\n *::before,\\n *::after {\\n // Bootstrap specific; comment out `color` and `background`\\n //color: $black !important; // Black prints faster\\n text-shadow: none !important;\\n //background: transparent !important;\\n box-shadow: none !important;\\n }\\n\\n a {\\n &:not(.btn) {\\n text-decoration: underline;\\n }\\n }\\n\\n // Bootstrap specific; comment the following selector out\\n //a[href]::after {\\n // content: \\\" (\\\" attr(href) \\\")\\\";\\n //}\\n\\n abbr[title]::after {\\n content: \\\" (\\\" attr(title) \\\")\\\";\\n }\\n\\n // Bootstrap specific; comment the following selector out\\n //\\n // Don't show links that are fragment identifiers,\\n // or use the `javascript:` pseudo protocol\\n //\\n\\n //a[href^=\\\"#\\\"]::after,\\n //a[href^=\\\"javascript:\\\"]::after {\\n // content: \\\"\\\";\\n //}\\n\\n pre {\\n white-space: pre-wrap !important;\\n }\\n pre,\\n blockquote {\\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\\n page-break-inside: avoid;\\n }\\n\\n tr,\\n img {\\n page-break-inside: avoid;\\n }\\n\\n p,\\n h2,\\n h3 {\\n orphans: 3;\\n widows: 3;\\n }\\n\\n h2,\\n h3 {\\n page-break-after: avoid;\\n }\\n\\n // Bootstrap specific changes start\\n\\n // Specify a size and min-width to make printing closer across browsers.\\n // We don't set margin here because it breaks `size` in Chrome. We also\\n // don't use `!important` on `size` as it breaks in Chrome.\\n @page {\\n size: $print-page-size;\\n }\\n body {\\n min-width: $print-body-min-width !important;\\n }\\n .container {\\n min-width: $print-body-min-width !important;\\n }\\n\\n // Bootstrap components\\n .navbar {\\n display: none;\\n }\\n .badge {\\n border: $border-width solid $black;\\n }\\n\\n .table {\\n border-collapse: collapse !important;\\n\\n td,\\n th {\\n background-color: $white !important;\\n }\\n }\\n\\n .table-bordered {\\n th,\\n td {\\n border: 1px solid $gray-300 !important;\\n }\\n }\\n\\n .table-dark {\\n color: inherit;\\n\\n th,\\n td,\\n thead th,\\n tbody + tbody {\\n border-color: $table-border-color;\\n }\\n }\\n\\n .table .thead-dark th {\\n color: inherit;\\n border-color: $table-border-color;\\n }\\n\\n // Bootstrap specific changes end\\n }\\n}\\n\",\"body {\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-font-smoothing: antialiased;\\n}\\n\\n.font-xs {\\n font-size: .75rem !important;\\n}\\n\\n.font-sm {\\n font-size: .85rem !important;\\n}\\n\\n.font-lg {\\n font-size: 1rem !important;\\n}\\n\\n.font-xl {\\n font-size: 1.25rem !important;\\n}\\n\\n.font-2xl {\\n font-size: 1.5rem !important;\\n}\\n\\n.font-3xl {\\n font-size: 1.75rem !important;\\n}\\n\\n.font-4xl {\\n font-size: 2rem !important;\\n}\\n\\n.font-5xl {\\n font-size: 2.5rem !important;\\n}\\n\",\"// scss-lint:disable all\\n.animated {\\n animation-duration: 1s;\\n // animation-fill-mode: both;\\n}\\n\\n.animated.infinite {\\n animation-iteration-count: infinite;\\n}\\n\\n.animated.hinge {\\n animation-duration: 2s;\\n}\\n\\n@keyframes fadeIn {\\n from {\\n opacity: 0;\\n }\\n\\n to {\\n opacity: 1;\\n }\\n}\\n\\n.fadeIn {\\n animation-name: fadeIn;\\n}\\n\",\".aside-menu {\\n z-index: $zindex-sticky - 1;\\n width: $aside-menu-width;\\n color: $aside-menu-color;\\n background: $aside-menu-bg;\\n @include borders($aside-menu-borders);\\n\\n .nav-tabs {\\n border-color: $border-color;\\n .nav-link {\\n padding: $aside-menu-nav-padding-y $aside-menu-nav-padding-x;\\n color: $body-color;\\n border-top: 0;\\n &.active {\\n color: theme-color(\\\"primary\\\");\\n border-right-color: $border-color;\\n border-left-color: $border-color;\\n }\\n }\\n .nav-item:first-child {\\n .nav-link {\\n border-left: 0;\\n }\\n }\\n }\\n\\n .tab-content {\\n position: relative;\\n overflow-x: hidden;\\n overflow-y: auto;\\n border: 0;\\n border-top: 1px solid $border-color;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n\\n &::-webkit-scrollbar {\\n width: 10px;\\n margin-left: -10px;\\n -webkit-appearance: none;\\n }\\n\\n // &::-webkit-scrollbar-button { }\\n\\n &::-webkit-scrollbar-track {\\n background-color: lighten($aside-menu-bg, 5%);\\n border-right: 1px solid darken($aside-menu-bg, 5%);\\n border-left: 1px solid darken($aside-menu-bg, 5%);\\n }\\n\\n // &::-webkit-scrollbar-track-piece { }\\n\\n &::-webkit-scrollbar-thumb {\\n height: 50px;\\n background-color: darken($aside-menu-bg, 10%);\\n background-clip: content-box;\\n border-color: transparent;\\n border-style: solid;\\n border-width: 1px 2px;\\n }\\n\\n .tab-pane {\\n padding: 0;\\n }\\n }\\n}\\n\",\"// scss-lint:disable all\\n// Core Admin Variables\\n\\n$enable-sidebar-nav-rounded: false !default;\\n\\n$border-color: $gray-200 !default;\\n$layout-transition-speed: .25s !default;\\n\\n// Social Colors\\n\\n$facebook: #3b5998 !default;\\n$twitter: #00aced !default;\\n$linkedin: #4875b4 !default;\\n$google-plus: #d34836 !default;\\n$flickr: #ff0084 !default;\\n$tumblr: #32506d !default;\\n$xing: #026466 !default;\\n$github: #4183c4 !default;\\n$html5: #e34f26 !default;\\n$openid: #f78c40 !default;\\n$stack-overflow: #fe7a15 !default;\\n$youtube: #b00 !default;\\n$css3: #0170ba !default;\\n$dribbble: #ea4c89 !default;\\n$google-plus: #bb4b39 !default;\\n$instagram: #517fa4 !default;\\n$pinterest: #cb2027 !default;\\n$vk: #45668e !default;\\n$yahoo: #400191 !default;\\n$behance: #1769ff !default;\\n$dropbox: #007ee5 !default;\\n$reddit: #ff4500 !default;\\n$spotify: #7ab800 !default;\\n$vine: #00bf8f !default;\\n$foursquare: #1073af !default;\\n$vimeo: #aad450 !default;\\n\\n// Navbar\\n\\n$navbar-height: 55px !default;\\n$navbar-bg: #fff !default;\\n$navbar-border: (\\n bottom: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n$navbar-brand-width: 155px !default;\\n$navbar-brand-bg: #fff !default;\\n$navbar-brand-logo: url('../public_src/img/signal-k-logo-image-text.svg') !default;\\n$navbar-brand-logo-size: 150px auto !default;\\n$navbar-brand-border: (\\n bottom: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n$navbar-brand-minimized-width: 50px !default;\\n$navbar-brand-minimized-bg: $navbar-brand-bg !default;\\n$navbar-brand-minimized-logo: url('../public_src/img/signal-k-logo-image-text.svg') !default;\\n$navbar-brand-minimized-logo-size: 24px !default;\\n$navbar-brand-minimized-border: $navbar-brand-border !default;\\n\\n$navbar-color: $gray-600 !default;\\n$navbar-hover-color: $gray-800 !default;\\n$navbar-active-color: $gray-800 !default;\\n$navbar-disabled-color: $gray-300 !default;\\n\\n$navbar-toggler-icon: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-color}' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n$navbar-toggler-icon-hover: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-hover-color}' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n\\n// Sidebar\\n\\n$sidebar-width: 200px !default;\\n$sidebar-padding: 0 !default;\\n$sidebar-minimized-width: 50px !default;\\n$sidebar-minimized-height: $sidebar-minimized-width !default;\\n$sidebar-compact-width: 150px !default;\\n$sidebar-compact-height: $sidebar-compact-width !default;\\n$sidebar-color: #fff !default;\\n$sidebar-bg: $gray-800 !default;\\n$sidebar-borders: none !default;\\n$mobile-sidebar-width: 220px !default;\\n\\n// Sidebar Header\\n\\n$sidebar-header-height: auto !default;\\n$sidebar-header-bg: rgba(0,0,0,.2) !default;\\n$sidebar-header-padding-y: .75rem !default;\\n$sidebar-header-padding-x: 1rem !default;\\n\\n// Sidebar Form\\n\\n$sidebar-form-border: 0 !default;\\n$sidebar-form-bg: darken($sidebar-bg,10%) !default;\\n$sidebar-form-color: #fff !default;\\n$sidebar-form-placeholder-color: rgba(255,255,255,.7) !default;\\n\\n// Sidebar Navigation\\n\\n$sidebar-nav-color: #fff !default;\\n$sidebar-nav-title-padding-y: .75rem !default;\\n$sidebar-nav-title-padding-x: 1rem !default;\\n$sidebar-nav-title-color: $gray-200 !default;\\n$sidebar-nav-link-padding-y: .75rem !default;\\n$sidebar-nav-link-padding-x: 1rem !default;\\n$sidebar-nav-link-color: #fff !default;\\n$sidebar-nav-link-bg: transparent !default;\\n$sidebar-nav-link-icon-color: $gray-600 !default;\\n$sidebar-nav-link-borders: 0 !default;\\n\\n$sidebar-nav-link-hover-color: #fff !default;\\n$sidebar-nav-link-hover-bg: theme-color(\\\"primary\\\") !default;\\n$sidebar-nav-link-hover-icon-color: #fff !default;\\n$sidebar-nav-link-hover-borders: 0 !default;\\n\\n$sidebar-nav-link-active-color: #fff !default;\\n$sidebar-nav-link-active-bg: lighten($sidebar-bg, 5%) !default;\\n$sidebar-nav-link-active-icon-color: theme-color(\\\"primary\\\") !default;\\n$sidebar-nav-link-active-borders: 0 !default;\\n\\n$sidebar-nav-dropdown-color: #fff !default;\\n$sidebar-nav-dropdown-bg: rgba(0,0,0,.2) !default;\\n$sidebar-nav-dropdown-borders: 0 !default;\\n$sidebar-nav-dropdown-indicator-color:$gray-600 !default;\\n$sidebar-nav-dropdown-indicator: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-nav-dropdown-indicator-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n$sidebar-nav-dropdown-indicator-hover-color:$sidebar-nav-link-hover-color;\\n$sidebar-nav-dropdown-indicator-hover:str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-nav-dropdown-indicator-hover-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n\\n// Sidebar Footer\\n\\n$sidebar-footer-height: auto !default;\\n$sidebar-footer-bg: rgba(0,0,0,.2) !default;\\n$sidebar-footer-padding-y: .75rem !default;\\n$sidebar-footer-padding-x: 1rem !default;\\n$sidebar-footer-borders: 0 !default;\\n\\n// Sidebar Minimizer\\n\\n$sidebar-minimizer-height: 50px !default;\\n$sidebar-minimizer-bg: rgba(0,0,0,.2) !default;\\n$sidebar-minimizer-borders: 0 !default;\\n$sidebar-minimizer-indicator-color: $gray-600 !default;\\n$sidebar-minimizer-indicator: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-minimizer-indicator-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n$sidebar-minimizer-hover-bg: rgba(0,0,0,.3) !default;\\n$sidebar-minimizer-hover-indicator-color:$sidebar-nav-link-hover-color !default;\\n$sidebar-minimizer-hover-indicator: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-minimizer-hover-indicator-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n\\n\\n// Top Navigation\\n\\n$top-nav-bg: #fff !default;\\n$top-nav-color: $body-color !default;\\n$top-nav-borders: (\\n bottom: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n$top-nav-ul-borders: (\\n all: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n$top-nav-hover-color: #fff !default;\\n$top-nav-hover-bg: theme-color(\\\"primary\\\") !default;\\n$top-nav-active-color: #fff !default;\\n$top-nav-active-bg: theme-color(\\\"primary\\\") !default;\\n$top-nav-height: $navbar-height - 15px !default;\\n\\n// Breadcrumb\\n$breadcrumb-borders: (\\n bottom: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n// Aside\\n\\n$aside-menu-width: 250px !default;\\n$aside-menu-color: $gray-800 !default;\\n$aside-menu-bg: #fff !default;\\n$aside-menu-borders: (\\n left: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n$aside-menu-nav-padding-y: .75rem !default;\\n$aside-menu-nav-padding-x: 1rem !default;\\n\\n// Footer\\n\\n$footer-height: 50px !default;\\n$footer-bg: $gray-100 !default;\\n$footer-color: $body-color !default;\\n$footer-borders: (\\n top: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n// Cards\\n\\n$card-icon-bg: transparent !default;\\n$card-icon-color: $body-color !default;\\n\",\"@mixin button-social-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\\n padding: $padding-y $padding-x;\\n font-size: $font-size;\\n line-height: $line-height;\\n border: 0;\\n @include border-radius($border-radius);\\n\\n &::before {\\n width: ($padding-y * 2) + ($font-size * $line-height);\\n height: ($padding-y * 2) + ($font-size * $line-height);\\n padding: $padding-y 0;\\n font-size: $font-size;\\n line-height: $line-height;\\n @include border-radius($border-radius);\\n }\\n\\n span {\\n margin-left: ($padding-y * 2) + ($font-size * $line-height);\\n }\\n\\n &.icon {\\n width: ($padding-y * 2) + ($font-size * $line-height);\\n height: ($padding-y * 2) + ($font-size * $line-height);\\n }\\n}\\n\\n@mixin avatar($width, $status-width) {\\n position: relative;\\n display: inline-block;\\n width: $width;\\n\\n .img-avatar {\\n width: $width;\\n height: $width;\\n }\\n\\n .avatar-status {\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n display: block;\\n width: $status-width;\\n height: $status-width;\\n border: 1px solid #fff;\\n border-radius: 50em;\\n }\\n}\\n\\n@mixin borders($borders) {\\n @each $border in $borders {\\n $direction: nth($border, 1);\\n @if $direction == \\\"all\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border: $size $style $color;\\n } @else if $direction == \\\"top\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border-top: $size $style $color;\\n } @else if $direction == \\\"right\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border-right: $size $style $color;\\n } @else if $direction == \\\"bottom\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border-bottom: $size $style $color;\\n } @else if $direction == \\\"left\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border-left: $size $style $color;\\n }\\n }\\n}\\n\\n@mixin sidebar-width($borders, $width) {\\n $sidebar-width: $width;\\n\\n @each $border in $borders {\\n $direction: nth($border, 1);\\n @if $direction == \\\"all\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $sidebar-width: ($sidebar-width - (2 * $size));\\n } @else if $direction == \\\"right\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $sidebar-width: $sidebar-width - $size;\\n } @else if $direction == \\\"left\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $sidebar-width: $sidebar-width - $size;\\n }\\n width: $sidebar-width;\\n }\\n}\\n\\n@mixin bg-variant($parent, $color) {\\n #{$parent} {\\n @include border-radius($card-border-radius-inner $card-border-radius-inner $card-border-radius-inner $card-border-radius-inner);\\n color: #fff !important;\\n background-color: $color !important;\\n }\\n a#{$parent} {\\n @include hover-focus {\\n background-color: darken($color, 10%);\\n }\\n }\\n}\\n\\n@mixin card-accent-variant($color) {\\n border-top-width: 2px;\\n border-top-color: $color;\\n}\\n\",\".img-avatar {\\n border-radius: 50em;\\n}\\n\\n.avatar {\\n $width: 36px;\\n $status-width: 10px;\\n @include avatar($width,$status-width);\\n}\\n\\n.avatar.avatar-xs {\\n $width: 20px;\\n $status-width: 8px;\\n @include avatar($width,$status-width);\\n}\\n\\n.avatar.avatar-sm {\\n $width: 24px;\\n $status-width: 8px;\\n @include avatar($width,$status-width);\\n}\\n\\n.avatar.avatar-lg {\\n $width: 72px;\\n $status-width: 12px;\\n @include avatar($width,$status-width);\\n}\\n\\n.avatars-stack {\\n .avatar.avatar-xs {\\n margin-right: -10px;\\n }\\n\\n // .avatar.avatar-sm {\\n //\\n // }\\n\\n .avatar {\\n margin-right: -15px;\\n transition: margin-left $layout-transition-speed, margin-right $layout-transition-speed;\\n\\n &:hover {\\n margin-right: 0 !important;\\n }\\n }\\n\\n // .avatar.avatar-lg {\\n //\\n // }\\n\\n}\\n\",\".badge-pill {\\n border-radius: $badge-pill-border-radius;\\n}\\n\",\".breadcrumb-menu {\\n margin-left: auto;\\n\\n &::before {\\n display: none;\\n }\\n\\n .btn-group {\\n vertical-align: top;\\n }\\n\\n .btn {\\n padding: 0 $input-btn-padding-x;\\n color: $text-muted;\\n vertical-align: top;\\n border: 0;\\n\\n &:hover, &.active {\\n color: $body-color;\\n background: transparent;\\n }\\n }\\n\\n .open {\\n .btn {\\n color: $body-color;\\n background: transparent;\\n }\\n }\\n\\n .dropdown-menu {\\n min-width: 180px;\\n line-height: $line-height-base;\\n }\\n}\\n\",\".breadcrumb {\\n position: relative;\\n @include borders($breadcrumb-borders);\\n}\\n\",\"button {\\n cursor: pointer;\\n}\\n\\n.btn {\\n .badge {\\n position: absolute;\\n top: 2px;\\n right: 6px;\\n font-size: 9px;\\n }\\n}\\n\\n.btn-transparent {\\n color: #fff;\\n background-color: transparent;\\n border-color: transparent;\\n}\\n\\n.btn {\\n [class^=\\\"icon-\\\"], [class*=\\\" icon-\\\"] {\\n display: inline-block;\\n margin-top: -2px;\\n vertical-align: middle;\\n }\\n}\\n\\n.btn-facebook,\\n.btn-twitter,\\n.btn-linkedin,\\n.btn-flickr,\\n.btn-tumblr,\\n.btn-xing,\\n.btn-github,\\n.btn-html5,\\n.btn-openid,\\n.btn-stack-overflow,\\n.btn-youtube,\\n.btn-css3,\\n.btn-dribbble,\\n.btn-google-plus,\\n.btn-instagram,\\n.btn-pinterest,\\n.btn-vk,\\n.btn-yahoo,\\n.btn-behance,\\n.btn-dropbox,\\n.btn-reddit,\\n.btn-spotify,\\n.btn-vine,\\n.btn-foursquare,\\n.btn-vimeo {\\n position: relative;\\n overflow: hidden;\\n color: #fff !important;\\n text-align: center;\\n\\n &::before {\\n position: absolute;\\n top: 0;\\n left: 0;\\n display: block;\\n font-family: \\\"FontAwesome\\\";\\n font-style: normal;\\n font-weight: normal;\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-font-smoothing: antialiased;\\n }\\n\\n &:hover {\\n color: #fff;\\n }\\n\\n &.icon {\\n\\n span {\\n display: none;\\n }\\n }\\n\\n &.text {\\n &::before {\\n display: none;\\n }\\n\\n span {\\n margin-left: 0 !important;\\n }\\n }\\n @include button-social-size($input-btn-padding-y, $input-btn-padding-x, $font-size-base, $line-height-base, $btn-border-radius);\\n\\n &.btn-lg {\\n @include button-social-size($input-btn-padding-y-lg, $input-btn-padding-x-lg, $font-size-lg, $line-height-lg, $btn-border-radius-lg);\\n }\\n\\n &.btn-sm {\\n @include button-social-size($input-btn-padding-y-sm, $input-btn-padding-x-sm, $font-size-sm, $line-height-sm, $btn-border-radius-sm);\\n }\\n\\n}\\n\\n.btn-facebook {\\n $color: $facebook;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f09a\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-twitter {\\n $color: $twitter;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f099\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-linkedin {\\n $color: $linkedin;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f0e1\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-flickr {\\n $color: $flickr;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f16e\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-tumblr {\\n $color: $tumblr;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f173\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-xing {\\n $color: $xing;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f168\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-github {\\n $color: $github;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f09b\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-html5 {\\n $color: $html5;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f13b\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-openid {\\n $color: $openid;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f19b\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-stack-overflow {\\n $color: $stack-overflow;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f16c\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-css3 {\\n $color: $css3;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f13c\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-youtube {\\n $color: $youtube;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f167\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-dribbble {\\n $color: $dribbble;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f17d\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-google-plus {\\n $color: $google-plus;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f0d5\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-instagram {\\n $color: $instagram;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f16d\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-pinterest {\\n $color: $pinterest;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f0d2\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-vk {\\n $color: $vk;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f189\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-yahoo {\\n $color: $yahoo;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f19e\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-behance {\\n $color: $behance;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f1b4\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-dropbox {\\n $color: $dropbox;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f16b\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-reddit {\\n $color: $reddit;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f1a1\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-spotify {\\n $color: $spotify;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f1bc\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-vine {\\n $color: $vine;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f1ca\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-foursquare {\\n $color: $foursquare;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f180\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-vimeo {\\n $color: $vimeo;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f194\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\",\".callout {\\n position: relative;\\n padding: 0 $spacer;\\n margin: $spacer 0;\\n border: 0 solid $border-color;\\n border-left-width: .25rem;\\n\\n @if $enable-rounded {\\n border-radius: .25rem;\\n }\\n\\n .chart-wrapper {\\n position: absolute;\\n top: 10px;\\n left: 50%;\\n float: right;\\n width: 50%;\\n }\\n}\\n\\n.callout-bordered {\\n border: 1px solid $border-color;\\n border-left-width: .25rem;\\n}\\n.callout code {\\n border-radius: .25rem;\\n}\\n.callout h4 {\\n margin-top: 0;\\n margin-bottom: .25rem;\\n}\\n.callout p:last-child {\\n margin-bottom: 0;\\n}\\n.callout + .callout {\\n margin-top: - .25rem;\\n}\\n\\n.callout-default {\\n border-left-color: $text-muted;\\n\\n h4 {\\n color: $text-muted;\\n }\\n}\\n\\n@each $color, $value in $theme-colors {\\n .callout-#{$color} {\\n border-left-color: $value;\\n\\n h4 {\\n color: $value;\\n }\\n }\\n}\\n\",\".card {\\n margin-bottom: 1.5 * $spacer;\\n\\n // Cards with color accent\\n @each $color, $value in $theme-colors {\\n &.bg-#{$color} {\\n border-color: darken($value, 12.5%);\\n .card-header {\\n background-color: darken($value, 3%);\\n border-color: darken($value, 12.5%);\\n }\\n }\\n }\\n}\\n\\n.text-white .text-muted {\\n color: rgba(255,255,255,.6) !important;\\n}\\n\\n.card-header {\\n\\n .icon-bg {\\n display: inline-body;\\n padding: $card-spacer-y $card-spacer-x !important;\\n margin-top: -$card-spacer-y;\\n margin-right: $card-spacer-x;\\n margin-bottom: -$card-spacer-y;\\n margin-left: -$card-spacer-x;\\n line-height: inherit;\\n color: $card-icon-color;\\n vertical-align: bottom;\\n background: $card-icon-bg;\\n border-right: $card-border-width solid $card-border-color;\\n }\\n\\n .nav.nav-tabs {\\n margin-top: -$card-spacer-y;\\n margin-bottom: -$card-spacer-y;\\n border-bottom: 0;\\n\\n .nav-item {\\n border-top: 0;\\n }\\n\\n .nav-link {\\n padding: $card-spacer-y $card-spacer-x / 2;\\n color: $text-muted;\\n border-top: 0;\\n\\n &.active {\\n color: $body-color;\\n background: #fff;\\n }\\n }\\n }\\n\\n &.card-header-inverse {\\n color: #fff;\\n }\\n\\n .btn {\\n margin-top: - $input-btn-padding-y;\\n }\\n .btn-sm {\\n margin-top: - $input-btn-padding-y-sm;\\n }\\n .btn-lg {\\n margin-top: - $input-btn-padding-y-lg;\\n }\\n}\\n//\\n.card-footer {\\n\\n ul {\\n display: table;\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n table-layout: fixed;\\n\\n li {\\n display: table-cell;\\n padding: 0 $card-spacer-x;\\n text-align: center;\\n }\\n }\\n}\\n\\n[class*=\\\"card-outline-\\\"] {\\n .card-body {\\n background: #fff !important;\\n }\\n\\n &.card-outline-top {\\n border-top-width: 2px;\\n border-right-color: $border-color;\\n border-bottom-color: $border-color;\\n border-left-color: $border-color;\\n }\\n}\\n\\n// Cards with color accent\\n@each $color, $value in $theme-colors {\\n .card-accent-#{$color} {\\n @include card-accent-variant($value);\\n }\\n}\\n\\n// Card Actions\\n.card-header {\\n > i {\\n margin-right: $spacer / 2;\\n }\\n .card-actions {\\n position: absolute;\\n top: 0;\\n right: 0;\\n //height: inherit;\\n\\n a, button {\\n display: block;\\n float: left;\\n width: 50px;\\n padding: $card-spacer-y 0;\\n margin: 0 !important;\\n color: $body-color;\\n text-align: center;\\n background: transparent;\\n border: 0;\\n border-left: 1px solid $border-color;\\n box-shadow: 0;\\n\\n &:hover {\\n text-decoration: none;\\n }\\n\\n [class^=\\\"icon-\\\"], [class*=\\\" icon-\\\"] {\\n display: inline-body;\\n vertical-align: middle;\\n }\\n\\n i {\\n display: inline-body;\\n transition: .4s;\\n }\\n\\n .r180 {\\n transform: rotate(180deg);\\n }\\n }\\n\\n .input-group {\\n width: 230px;\\n margin: 6px;\\n\\n .input-group-addon {\\n background: #fff;\\n }\\n\\n input {\\n border-left: 0;\\n }\\n }\\n }\\n}\\n\\n.card-full {\\n margin-top: - $spacer;\\n margin-right: - $grid-gutter-width / 2;\\n margin-left: - $grid-gutter-width / 2;\\n border: 0;\\n border-bottom: $card-border-width solid $border-color;\\n}\\n\\n@include media-breakpoint-up(sm) {\\n .card-columns {\\n\\n &.cols-2 {\\n column-count: 2;\\n }\\n }\\n}\\n\\n.card {\\n &.drag, .drag {\\n cursor: move;\\n }\\n}\\n\\n.card-placeholder {\\n background: rgba(0,0,0,.025);\\n border: 1px dashed $gray-300;\\n}\\n\",\".chart-wrapper {\\n canvas {\\n width: 100% !important;\\n }\\n}\\n// scss-lint:disable QualifyingElement\\nbase-chart.chart {\\n display: block !important;\\n}\\n\",\"// Links, buttons, and more within the dropdown menu\\n.dropdown-item {\\n position: relative;\\n padding: 10px 20px;\\n border-bottom: 1px solid $dropdown-border-color;\\n\\n &:last-child {\\n border-bottom: 0;\\n }\\n\\n i {\\n display: inline-block;\\n width: 20px;\\n margin-right: 10px;\\n margin-left: -10px;\\n color: $dropdown-border-color;\\n text-align: center;\\n }\\n\\n .badge {\\n position: absolute;\\n right: 10px;\\n margin-top: 2px;\\n }\\n}\\n\\n// Dropdown section headers\\n.dropdown-header {\\n padding: 8px 20px;\\n background: $dropdown-divider-bg;\\n border-bottom: 1px solid $dropdown-border-color;\\n\\n .btn {\\n margin-top: -7px;\\n color: $dropdown-header-color;\\n\\n &:hover {\\n color: $body-color;\\n }\\n\\n &.pull-right {\\n margin-right: -20px;\\n }\\n }\\n}\\n\\n.dropdown-menu-lg {\\n width: 250px;\\n}\\n.app-header {\\n .navbar-nav {\\n .dropdown-menu {\\n position: absolute;\\n }\\n // Menu positioning\\n //\\n // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\\n // menu with the parent.\\n .dropdown-menu-right {\\n right: 0;\\n left: auto; // Reset the default from `.dropdown-menu`\\n }\\n\\n .dropdown-menu-left {\\n right: auto;\\n left: 0;\\n }\\n }\\n}\\n\",\".app-footer {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n padding: 0 $spacer;\\n color: $footer-color;\\n background: $footer-bg;\\n @include borders($footer-borders);\\n}\\n\",\".row.row-equal {\\n padding-right: ($grid-gutter-width / 4);\\n padding-left: ($grid-gutter-width / 4);\\n margin-right: ($grid-gutter-width / -2);\\n margin-left: ($grid-gutter-width / -2);\\n\\n [class*=\\\"col-\\\"] {\\n padding-right: ($grid-gutter-width / 4);\\n padding-left: ($grid-gutter-width / 4);\\n }\\n}\\n\\n.main .container-fluid {\\n padding: 0 30px;\\n}\\n\",\".input-group-addon,\\n.input-group-btn {\\n min-width: 40px;\\n white-space: nowrap;\\n vertical-align: middle; // Match the inputs\\n}\\n\",\"// Angular Version\\n// Make clicks pass-through\\n// scss-lint:disable all\\n#loading-bar,\\n#loading-bar-spinner {\\n -webkit-pointer-events: none;\\n pointer-events: none;\\n -moz-transition: 350ms linear all;\\n -o-transition: 350ms linear all;\\n -webkit-transition: 350ms linear all;\\n transition: 350ms linear all;\\n}\\n\\n#loading-bar.ng-enter,\\n#loading-bar.ng-leave.ng-leave-active,\\n#loading-bar-spinner.ng-enter,\\n#loading-bar-spinner.ng-leave.ng-leave-active {\\n opacity: 0;\\n}\\n\\n#loading-bar.ng-enter.ng-enter-active,\\n#loading-bar.ng-leave,\\n#loading-bar-spinner.ng-enter.ng-enter-active,\\n#loading-bar-spinner.ng-leave {\\n opacity: 1;\\n}\\n\\n#loading-bar .bar {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 20002;\\n width: 100%;\\n height: 2px;\\n background: theme-color(\\\"primary\\\");\\n border-top-right-radius: 1px;\\n border-bottom-right-radius: 1px;\\n -moz-transition: width 350ms;\\n -o-transition: width 350ms;\\n -webkit-transition: width 350ms;\\n transition: width 350ms;\\n}\\n\\n// Fancy blur effect\\n#loading-bar .peg {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 70px;\\n height: 2px;\\n -moz-border-radius: 100%;\\n -webkit-border-radius: 100%;\\n border-radius: 100%;\\n -moz-box-shadow: #29d 1px 0 6px 1px;\\n -ms-box-shadow: #29d 1px 0 6px 1px;\\n -webkit-box-shadow: #29d 1px 0 6px 1px;\\n box-shadow: #29d 1px 0 6px 1px;\\n opacity: .45;\\n}\\n\\n#loading-bar-spinner {\\n position: fixed;\\n top: 10px;\\n left: 10px;\\n z-index: 10002;\\n display: block;\\n}\\n\\n#loading-bar-spinner .spinner-icon {\\n width: 14px;\\n height: 14px;\\n\\n border: solid 2px transparent;\\n border-top-color: #29d;\\n border-left-color: #29d;\\n border-radius: 50%;\\n\\n -moz-animation: loading-bar-spinner 400ms linear infinite;\\n -ms-animation: loading-bar-spinner 400ms linear infinite;\\n -o-animation: loading-bar-spinner 400ms linear infinite;\\n -webkit-animation: loading-bar-spinner 400ms linear infinite;\\n animation: loading-bar-spinner 400ms linear infinite;\\n}\\n\\n@-webkit-keyframes loading-bar-spinner {\\n 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n@-moz-keyframes loading-bar-spinner {\\n 0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n@-o-keyframes loading-bar-spinner {\\n 0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n@-ms-keyframes loading-bar-spinner {\\n 0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n@keyframes loading-bar-spinner {\\n 0% { transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n\\n//Ajax & Static Version\\n.pace {\\n -webkit-pointer-events: none;\\n pointer-events: none;\\n\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n\\n.pace-inactive {\\n display: none;\\n}\\n\\n.pace .pace-progress {\\n position: fixed;\\n top: 0;\\n right: 100%;\\n z-index: 2000;\\n width: 100%;\\n height: 2px;\\n background: theme-color(\\\"primary\\\");\\n}\\n\",\"@each $color, $value in $theme-colors {\\n .modal-#{$color} {\\n\\n .modal-content {\\n border-color: $value;\\n }\\n\\n .modal-header {\\n color: #fff;\\n background-color: $value;\\n }\\n }\\n}\\n\",\".nav-tabs {\\n .nav-link {\\n color: $gray-600;\\n &.active {\\n color: $gray-800;\\n background: #fff;\\n border-color: $border-color;\\n border-bottom-color: #fff;\\n &:focus {\\n background: #fff;\\n border-color: $border-color;\\n border-bottom-color: #fff;\\n }\\n }\\n }\\n}\\n\\n.tab-content {\\n margin-top: -1px;\\n background: #fff;\\n border: 1px solid $border-color;\\n .tab-pane {\\n padding: $spacer;\\n }\\n}\\n\\n.card-block {\\n .tab-content {\\n margin-top: 0;\\n border: 0;\\n }\\n}\\n\",\".app-header.navbar {\\n position: relative;\\n flex-direction: row;\\n height: $navbar-height;\\n padding: 0;\\n margin: 0;\\n background-color: $navbar-bg;\\n @include borders($navbar-border);\\n\\n .navbar-brand {\\n display: inline-block;\\n width: $navbar-brand-width;\\n height: $navbar-height;\\n padding: $navbar-padding-y $navbar-padding-x;\\n margin-right: 0;\\n background-color: $navbar-brand-bg;\\n background-image: $navbar-brand-logo;\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: $navbar-brand-logo-size;\\n @include borders($navbar-brand-border);\\n }\\n\\n .navbar-toggler {\\n min-width: 50px;\\n padding: $navbar-toggler-padding-y 0;\\n\\n &:hover .navbar-toggler-icon {\\n background-image: $navbar-toggler-icon-hover;\\n }\\n }\\n\\n .navbar-toggler-icon {\\n height: 23px;\\n background-image: $navbar-toggler-icon;\\n }\\n\\n .navbar-nav {\\n flex-direction: row;\\n align-items: center;\\n }\\n\\n .nav-item {\\n position: relative;\\n min-width: 50px;\\n margin: 0 !important;\\n text-align: center;\\n\\n button {\\n margin: 0 auto;\\n }\\n\\n .nav-link {\\n padding-top: 0;\\n padding-bottom: 0;\\n background: 0;\\n border: 0;\\n\\n .badge {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n margin-top: -16px;\\n margin-left: 0;\\n }\\n\\n > .img-avatar {\\n height: $navbar-height - 20px;\\n margin: 0 10px;\\n }\\n }\\n }\\n\\n .dropdown-menu {\\n padding-bottom: 0;\\n line-height: $line-height-base;\\n }\\n\\n .dropdown-item {\\n min-width: 180px;\\n }\\n}\\n\\n.navbar-brand {\\n color: $navbar-active-color;\\n\\n @include hover-focus {\\n color: $navbar-active-color;\\n }\\n}\\n\\n.navbar-nav {\\n .nav-link {\\n color: $navbar-color;\\n\\n @include hover-focus {\\n color: $navbar-hover-color;\\n }\\n }\\n\\n .open > .nav-link,\\n .active > .nav-link,\\n .nav-link.open,\\n .nav-link.active {\\n @include plain-hover-focus {\\n color: $navbar-active-color;\\n }\\n }\\n}\\n\\n.navbar-divider {\\n background-color: rgba(0,0,0,.075);\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .brand-minimized {\\n .app-header.navbar {\\n .navbar-brand {\\n width: $navbar-brand-minimized-width;\\n background-color: $navbar-brand-minimized-bg;\\n background-image: $navbar-brand-minimized-logo;\\n background-size: $navbar-brand-minimized-logo-size;\\n @include borders($navbar-brand-minimized-border);\\n }\\n }\\n }\\n}\\n\",\".progress-xs {\\n height: 4px;\\n}\\n\\n.progress-sm {\\n height: 8px;\\n}\\n\\n// White progress bar\\n.progress-white {\\n background-color: rgba(255,255,255,.2) !important;\\n .progress-bar {\\n background-color: #fff;\\n }\\n}\\n\",\"// scss-lint:disable NestingDepth, SelectorDepth\\n.sidebar {\\n display: flex;\\n flex-direction: column;\\n padding: $sidebar-padding;\\n color: $sidebar-color;\\n background: $sidebar-bg;\\n @include borders($sidebar-borders);\\n\\n .sidebar-close {\\n position: absolute;\\n right: 0;\\n display: none;\\n padding: 0 $spacer;\\n font-size: 24px;\\n font-weight: 800;\\n line-height: $navbar-height;\\n color: $sidebar-color;\\n background: 0;\\n border: 0;\\n opacity: .8;\\n\\n &:hover {\\n opacity: 1;\\n }\\n }\\n\\n // Will be added soon\\n // .sidebar-brand { }\\n\\n .sidebar-header {\\n flex: 0 0 $sidebar-header-height;\\n padding: $sidebar-header-padding-y $sidebar-header-padding-x;\\n text-align: center;\\n background: $sidebar-header-bg;\\n }\\n\\n .sidebar-form .form-control {\\n color: $sidebar-form-color;\\n background: $sidebar-form-bg;\\n border: $sidebar-form-border;\\n\\n &::placeholder {\\n color: $sidebar-form-placeholder-color;\\n }\\n }\\n\\n .sidebar-nav {\\n position: relative;\\n flex: 1;\\n overflow-x: hidden;\\n overflow-y: auto;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n @include sidebar-width($sidebar-borders, $sidebar-width);\\n\\n &::-webkit-scrollbar {\\n position: absolute;\\n width: 10px;\\n margin-left: -10px;\\n -webkit-appearance: none;\\n }\\n\\n &::-webkit-scrollbar-track {\\n background-color: lighten($sidebar-bg, 5%);\\n border-right: 1px solid darken($sidebar-bg, 5%);\\n border-left: 1px solid darken($sidebar-bg, 5%);\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n height: 50px;\\n background-color: darken($sidebar-bg, 10%);\\n background-clip: content-box;\\n border-color: transparent;\\n border-style: solid;\\n border-width: 1px 2px;\\n }\\n }\\n\\n .nav {\\n @include sidebar-width($sidebar-borders, $sidebar-width);\\n flex-direction: column;\\n min-height: 100%;\\n }\\n\\n .nav-title {\\n padding: $sidebar-nav-title-padding-y $sidebar-nav-title-padding-x;\\n font-size: 11px;\\n font-weight: 600;\\n color: $sidebar-nav-title-color;\\n text-transform: uppercase;\\n }\\n\\n .nav-divider, .divider {\\n height: 10px;\\n }\\n\\n .nav-item {\\n position: relative;\\n margin: 0;\\n transition: background .3s ease-in-out;\\n }\\n\\n .nav-dropdown-items {\\n max-height: 0;\\n padding: 0;\\n margin: 0;\\n overflow-y: hidden;\\n transition: max-height .3s ease-in-out;\\n\\n .nav-item {\\n padding: 0;\\n list-style: none;\\n }\\n }\\n\\n .nav-link {\\n display: block;\\n padding: $sidebar-nav-link-padding-y $sidebar-nav-link-padding-x;\\n color: $sidebar-nav-link-color;\\n text-decoration: none;\\n background: $sidebar-nav-link-bg;\\n @include borders($sidebar-nav-link-borders);\\n @if $enable-sidebar-nav-rounded {\\n border-radius: $border-radius;\\n }\\n\\n i {\\n display: inline-block;\\n width: 20px;\\n margin: 0 ($sidebar-nav-link-padding-x / 2) 0 0;\\n font-size: 14px;\\n color: $sidebar-nav-link-icon-color;\\n text-align: center;\\n }\\n\\n .badge {\\n float: right;\\n margin-top: 2px;\\n }\\n\\n &.active {\\n color: $sidebar-nav-link-active-color;\\n background: $sidebar-nav-link-active-bg;\\n @include borders($sidebar-nav-link-active-borders);\\n\\n i {\\n color: $sidebar-nav-link-active-icon-color;\\n }\\n }\\n\\n &:hover {\\n color: $sidebar-nav-link-hover-color;\\n background: $sidebar-nav-link-hover-bg;\\n @include borders($sidebar-nav-link-hover-borders);\\n\\n i {\\n color: $sidebar-nav-link-hover-icon-color;\\n }\\n\\n &.nav-dropdown-toggle::before {\\n background-image: $sidebar-nav-dropdown-indicator-hover;\\n }\\n }\\n\\n @each $color, $value in $theme-colors {\\n &.nav-link-#{$color} {\\n background: $value;\\n i {\\n color: rgba(255,255,255,.7);\\n }\\n &:hover {\\n background: darken($value,5%) !important;\\n i {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n\\n // ex. <a class=\\\"nav-link nav-dropdown-toggle\\\" href=\\\"#\\\">Components</a>\\n .nav-dropdown-toggle {\\n position: relative;\\n\\n &::before {\\n position: absolute;\\n top: 50%;\\n right: $sidebar-nav-link-padding-x;\\n display: block;\\n width: 8px;\\n height: 8px;\\n padding: 0;\\n margin-top: -4px;\\n content: \\\"\\\";\\n background-image: $sidebar-nav-dropdown-indicator;\\n background-repeat: no-repeat;\\n background-position: center;\\n transition: transform .3s;\\n }\\n }\\n\\n // ex. <li class=\\\"nav-item nav-dropdown\\\">\\n .nav-dropdown.open {\\n background: $sidebar-nav-dropdown-bg;\\n @include borders($sidebar-nav-dropdown-borders);\\n @if $enable-sidebar-nav-rounded {\\n border-radius: $border-radius;\\n }\\n > .nav-dropdown-items {\\n max-height: 1000px;\\n }\\n\\n .nav-link {\\n color: $sidebar-nav-dropdown-color;\\n border-left: 0 !important;\\n }\\n\\n > .nav-link.nav-dropdown-toggle::before {\\n transform: rotate(-90deg);\\n }\\n\\n .nav-dropdown.open {\\n border-left: 0;\\n }\\n }\\n\\n .nav-label {\\n display: block;\\n padding: ($sidebar-nav-link-padding-y / 8) $sidebar-nav-link-padding-x;\\n color: $sidebar-nav-title-color;\\n\\n &:hover {\\n color: $sidebar-color;\\n text-decoration: none;\\n }\\n\\n i {\\n width: 20px;\\n margin: -3px ($sidebar-nav-link-padding-x / 2) 0 0;\\n font-size: 10px;\\n color: $sidebar-nav-link-icon-color;\\n text-align: center;\\n vertical-align: middle;\\n }\\n }\\n\\n @if (lightness( $sidebar-bg ) < 40) {\\n .progress {\\n background-color: lighten($sidebar-bg, 15%) !important;\\n }\\n }\\n\\n .sidebar-footer {\\n flex: 0 0 $sidebar-footer-height;\\n padding: $sidebar-footer-padding-y $sidebar-footer-padding-x;\\n background: $sidebar-footer-bg;\\n @include borders($sidebar-footer-borders);\\n }\\n\\n .sidebar-minimizer {\\n position: relative;\\n flex: 0 0 $sidebar-minimizer-height;\\n background-color: $sidebar-minimizer-bg;\\n border: 0;\\n @include borders($sidebar-minimizer-borders);\\n\\n &::before {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: $sidebar-minimizer-height;\\n height: $sidebar-minimizer-height;\\n content: \\\"\\\";\\n background-image: $sidebar-minimizer-indicator;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: $sidebar-minimizer-height / 4;\\n transition: .3s;\\n }\\n\\n &:focus,\\n &.focus {\\n outline: 0;\\n }\\n\\n &:hover {\\n background-color: $sidebar-minimizer-hover-bg;\\n &::before {\\n background-image: $sidebar-minimizer-hover-indicator;\\n }\\n }\\n }\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .sidebar-compact {\\n .sidebar {\\n .sidebar-nav {\\n @include sidebar-width($sidebar-borders, $sidebar-compact-width);\\n }\\n\\n .nav {\\n @include sidebar-width($sidebar-borders, $sidebar-compact-width);\\n\\n .nav-title {\\n text-align: center;\\n }\\n\\n .nav-item {\\n width: $sidebar-compact-width;\\n border-left: 0 !important;\\n\\n .nav-link {\\n text-align: center;\\n\\n i {\\n display: block;\\n width: 100%;\\n margin: $spacer / 4 0;\\n font-size: 24px;\\n }\\n\\n .badge {\\n position: absolute;\\n top: 18px;\\n right: 10px;\\n }\\n\\n &.nav-dropdown-toggle {\\n\\n &::before {\\n top: 30px;\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\\n // Minimized Sidebar\\n .sidebar-minimized {\\n .hidden-cn {\\n display: none;\\n }\\n .sidebar {\\n z-index: $zindex-sticky - 1;\\n\\n .sidebar-nav {\\n overflow: visible;\\n @include sidebar-width($sidebar-borders, $sidebar-minimized-width);\\n }\\n\\n .nav {\\n @include sidebar-width($sidebar-borders, $sidebar-minimized-width);\\n }\\n\\n .nav-divider, .divider,\\n .nav-title,\\n .sidebar-footer,\\n .sidebar-form,\\n .sidebar-header {\\n display: none;\\n }\\n\\n .sidebar-minimizer::before {\\n width: 100%;\\n transform: rotate(-180deg);\\n }\\n\\n .nav-item {\\n width: $sidebar-minimized-width;\\n overflow: hidden;\\n border-left: 0 !important;\\n\\n &:hover {\\n width: $sidebar-width + $sidebar-minimized-width;\\n overflow: visible;\\n\\n > .nav-link {\\n background: $sidebar-nav-link-hover-bg;\\n\\n i {\\n color: $sidebar-nav-link-hover-color;\\n }\\n }\\n }\\n }\\n\\n .nav-link {\\n position: relative;\\n padding-left: 0;\\n margin: 0;\\n white-space: nowrap;\\n border-left: 0 !important;\\n\\n i {\\n display: block;\\n float: left;\\n width: $sidebar-minimized-height;\\n // padding: 0;\\n // margin: 0 !important;\\n font-size: 18px;\\n }\\n\\n .badge {\\n position: absolute;\\n right: 15px;\\n display: none;\\n }\\n\\n &:hover {\\n width: $sidebar-width + $sidebar-minimized-width;\\n background: $sidebar-nav-link-hover-bg;\\n\\n .badge {\\n display: inline;\\n }\\n }\\n\\n &.nav-dropdown-toggle::before {\\n display: none;\\n }\\n }\\n\\n .nav-dropdown-items {\\n .nav-item {\\n width: $sidebar-width;\\n\\n .nav-link {\\n width: $sidebar-width;\\n }\\n }\\n }\\n\\n .nav > .nav-dropdown {\\n > .nav-dropdown-items {\\n display: none;\\n max-height: 1000px;\\n background: $sidebar-bg;\\n }\\n\\n &:hover {\\n background: $sidebar-nav-link-hover-bg;\\n > .nav-dropdown-items {\\n position: absolute;\\n left: $sidebar-minimized-width;\\n display: inline;\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"@mixin switch-size($width, $height, $font-size, $handle-margin) {\\n width: $width;\\n height: $height;\\n\\n .switch-label {\\n font-size: $font-size;\\n }\\n\\n .switch-handle {\\n width: $height - $handle-margin * 2;\\n height: $height - $handle-margin * 2;\\n }\\n\\n .switch-input:checked ~ .switch-handle {\\n left: $width - $height + $handle-margin;\\n }\\n}\\n\\n@mixin switch($type, $width, $height, $font-size, $handle-margin) {\\n position: relative;\\n display: inline-block;\\n vertical-align: top;\\n width: $width;\\n height: $height;\\n background-color: transparent;\\n cursor: pointer;\\n\\n .switch-input {\\n position: absolute;\\n top: 0;\\n left: 0;\\n opacity: 0;\\n }\\n\\n .switch-label {\\n position: relative;\\n display: block;\\n height: inherit;\\n @if $type == icon {\\n font-family: FontAwesome;\\n }\\n font-size: $font-size;\\n font-weight: 600;\\n text-transform: uppercase;\\n @if $type == ddd {\\n background-color: $gray-100;\\n } @else {\\n background-color: #fff;\\n }\\n border: 1px solid $border-color;\\n border-radius: 2px;\\n transition: opacity background .15s ease-out;\\n }\\n @if $type == text or $type == icon {\\n .switch-label::before,\\n .switch-label::after {\\n position: absolute;\\n top: 50%;\\n width: 50%;\\n margin-top: -.5em;\\n line-height: 1;\\n text-align: center;\\n transition: inherit;\\n }\\n .switch-label::before {\\n right: 1px;\\n color: $gray-200;\\n content: attr(data-off);\\n }\\n .switch-label::after {\\n left: 1px;\\n color: #fff;\\n content: attr(data-on);\\n opacity: 0;\\n }\\n }\\n .switch-input:checked ~ .switch-label {\\n //background: $gray-lightest;\\n }\\n .switch-input:checked ~ .switch-label::before {\\n opacity: 0;\\n }\\n .switch-input:checked ~ .switch-label::after {\\n opacity: 1;\\n }\\n\\n .switch-handle {\\n position: absolute;\\n top: $handle-margin;\\n left: $handle-margin;\\n width: $height - $handle-margin * 2;\\n height: $height - $handle-margin * 2;\\n background: #fff;\\n border: 1px solid $border-color;\\n border-radius: 1px;\\n transition: left .15s ease-out;\\n @if $type == ddd {\\n border: 0;\\n box-shadow: 0 2px 5px rgba(0, 0, 0, .3);\\n }\\n }\\n\\n .switch-input:checked ~ .switch-handle {\\n left: $width - $height + $handle-margin;\\n }\\n\\n\\n @if $type == ddd {\\n @extend .switch-pill;\\n }\\n\\n //size variations\\n @if $type == default {\\n\\n &.switch-lg {\\n @include switch-size($switch-lg-width, $switch-lg-height, $switch-lg-font-size, $handle-margin);\\n }\\n &.switch-sm {\\n @include switch-size($switch-sm-width, $switch-sm-height, $switch-sm-font-size, $handle-margin);\\n }\\n &.switch-xs {\\n @include switch-size($switch-xs-width, $switch-xs-height, $switch-xs-font-size, $handle-margin);\\n }\\n\\n } @else if $type == text {\\n\\n &.switch-lg {\\n @include switch-size($switch-text-lg-width, $switch-text-lg-height, $switch-text-lg-font-size, $handle-margin);\\n }\\n &.switch-sm {\\n @include switch-size($switch-text-sm-width, $switch-text-sm-height, $switch-text-sm-font-size, $handle-margin);\\n }\\n &.switch-xs {\\n @include switch-size($switch-text-xs-width, $switch-text-xs-height, $switch-text-xs-font-size, $handle-margin);\\n }\\n\\n } @else if $type == icon {\\n\\n &.switch-lg {\\n @include switch-size($switch-icon-lg-width, $switch-icon-lg-height, $switch-icon-lg-font-size, $handle-margin);\\n }\\n &.switch-sm {\\n @include switch-size($switch-icon-sm-width, $switch-icon-sm-height, $switch-icon-sm-font-size, $handle-margin);\\n }\\n &.switch-xs {\\n @include switch-size($switch-icon-xs-width, $switch-icon-xs-height, $switch-icon-xs-font-size, $handle-margin);\\n }\\n\\n } @else if $type == ddd {\\n\\n &.switch-lg {\\n @include switch-size($switch-lg-width, $switch-lg-height, $switch-lg-font-size, 0);\\n }\\n &.switch-sm {\\n @include switch-size($switch-sm-width, $switch-sm-height, $switch-sm-font-size, 0);\\n }\\n &.switch-xs {\\n @include switch-size($switch-xs-width, $switch-xs-height, $switch-xs-font-size, 0);\\n }\\n }\\n}\\n\\n@mixin switch-variant($color) {\\n > .switch-input:checked ~ .switch-label {\\n background: $color !important;\\n border-color: darken($color,10%);\\n }\\n\\n > .switch-input:checked ~ .switch-handle {\\n border-color: darken($color,10%);\\n }\\n}\\n\\n@mixin switch-outline-variant($color) {\\n > .switch-input:checked ~ .switch-label {\\n background: #fff !important;\\n border-color: $color;\\n\\n &::after {\\n color: $color;\\n }\\n }\\n\\n > .switch-input:checked ~ .switch-handle {\\n border-color: $color;\\n }\\n}\\n\\n@mixin switch-outline-alt-variant($color) {\\n > .switch-input:checked ~ .switch-label {\\n background: #fff !important;\\n border-color: $color;\\n\\n &::after {\\n color: $color;\\n }\\n }\\n\\n > .switch-input:checked ~ .switch-handle {\\n background: $color !important;\\n border-color: $color;\\n }\\n}\\n\\n$switch-lg-width: 48px;\\n$switch-lg-height: 28px;\\n$switch-lg-font-size: 12px;\\n\\n$switch-width: 40px;\\n$switch-height: 24px;\\n$switch-font-size: 10px;\\n\\n$handle-margin: 2px;\\n\\n$switch-sm-width: 32px;\\n$switch-sm-height: 20px;\\n$switch-sm-font-size: 8px;\\n\\n$switch-xs-width: 24px;\\n$switch-xs-height: 16px;\\n$switch-xs-font-size: 7px;\\n\\n\\n$switch-text-lg-width: 56px;\\n$switch-text-lg-height: 28px;\\n$switch-text-lg-font-size: 12px;\\n\\n$switch-text-width: 48px;\\n$switch-text-height: 24px;\\n$switch-text-font-size: 10px;\\n\\n$switch-text-sm-width: 40px;\\n$switch-text-sm-height: 20px;\\n$switch-text-sm-font-size: 8px;\\n\\n$switch-text-xs-width: 32px;\\n$switch-text-xs-height: 16px;\\n$switch-text-xs-font-size: 7px;\\n\\n\\n$switch-icon-lg-width: 56px;\\n$switch-icon-lg-height: 28px;\\n$switch-icon-lg-font-size: 12px;\\n\\n$switch-icon-width: 48px;\\n$switch-icon-height: 24px;\\n$switch-icon-font-size: 10px;\\n\\n$switch-icon-sm-width: 40px;\\n$switch-icon-sm-height: 20px;\\n$switch-icon-sm-font-size: 8px;\\n\\n$switch-icon-xs-width: 32px;\\n$switch-icon-xs-height: 16px;\\n$switch-icon-xs-font-size: 7px;\\n\\n.switch.switch-default {\\n @include switch('default', $switch-width, $switch-height, $switch-font-size, $handle-margin);\\n}\\n\\n.switch.switch-text {\\n @include switch('text', $switch-text-width, $switch-text-height, $switch-text-font-size, $handle-margin);\\n}\\n\\n.switch.switch-icon {\\n @include switch('icon', $switch-icon-width, $switch-icon-height, $switch-icon-font-size, $handle-margin);\\n}\\n\\n.switch.switch-3d {\\n @include switch('ddd', $switch-width, $switch-height, $switch-font-size, 0);\\n}\\n\\n//pills style\\n.switch-pill {\\n .switch-label,\\n .switch-handle {\\n border-radius: 50em !important;\\n }\\n\\n .switch-label::before {\\n right: 2px !important;\\n }\\n .switch-label::after {\\n left: 2px !important;\\n }\\n}\\n\\n@each $color, $value in $theme-colors {\\n //normal style\\n .switch-#{$color} {\\n @include switch-variant($value);\\n }\\n //outline style\\n .switch-#{$color}-outline {\\n @include switch-outline-variant($value);\\n }\\n //outline alternative style\\n .switch-#{$color}-outline-alt {\\n @include switch-outline-alt-variant($value);\\n }\\n}\\n\",\".table-outline {\\n border: 1px solid $table-border-color;\\n\\n td {\\n vertical-align: middle;\\n }\\n}\\n\\n.table-align-middle {\\n\\n td {\\n vertical-align: middle;\\n }\\n}\\n\\n.table-clear {\\n td {\\n border: 0;\\n }\\n}\\n\",\"// .social-box\\n.social-box {\\n min-height: 160px;\\n margin-bottom: 2 * $card-spacer-y;\\n text-align: center;\\n background: #fff;\\n border: $card-border-width solid $card-border-color;\\n @include border-radius($card-border-radius);\\n\\n i {\\n display: block;\\n margin: -1px -1px 0;\\n font-size: 40px;\\n line-height: 90px;\\n background: $gray-200;\\n\\n @include border-radius($card-border-radius $card-border-radius 0 0);\\n }\\n\\n .chart-wrapper {\\n height: 90px;\\n margin: -90px 0 0;\\n\\n canvas {\\n width: 100% !important;\\n height: 90px !important;\\n }\\n }\\n\\n ul {\\n padding: 10px 0;\\n list-style: none;\\n\\n\\n li {\\n display: block;\\n float: left;\\n width: 50%;\\n\\n &:first-child {\\n border-right: 1px solid $border-color;\\n }\\n\\n strong {\\n display: block;\\n font-size: 20px;\\n }\\n\\n span {\\n font-size: 10px;\\n font-weight: 500;\\n color: $border-color;\\n text-transform: uppercase;\\n }\\n }\\n }\\n\\n &.facebook {\\n i {\\n color: #fff;\\n background: $facebook;\\n }\\n }\\n\\n &.twitter {\\n i {\\n color: #fff;\\n background: $twitter;\\n }\\n }\\n\\n &.linkedin {\\n i {\\n color: #fff;\\n background: $linkedin;\\n }\\n }\\n\\n &.google-plus {\\n i {\\n color: #fff;\\n background: $google-plus;\\n }\\n }\\n}\\n\\n.horizontal-bars {\\n padding: 0;\\n margin: 0;\\n list-style: none;\\n\\n li {\\n position: relative;\\n height: 40px;\\n line-height: 40px;\\n vertical-align: middle;\\n\\n .title {\\n width: 100px;\\n font-size: 12px;\\n font-weight: 600;\\n color: $text-muted;\\n vertical-align: middle;\\n }\\n\\n .bars {\\n position: absolute;\\n top: 15px;\\n width: 100%;\\n padding-left: 100px;\\n\\n .progress:first-child {\\n margin-bottom: 2px;\\n }\\n }\\n\\n &.legend {\\n text-align: center;\\n\\n .badge {\\n display: inline-block;\\n width: 8px;\\n height: 8px;\\n padding: 0;\\n }\\n }\\n\\n &.divider {\\n height: 40px;\\n\\n i {\\n margin: 0 !important;\\n }\\n }\\n }\\n\\n &.type-2 {\\n\\n li {\\n overflow: hidden;\\n\\n i {\\n display: inline-block;\\n margin-right: $spacer;\\n margin-left: 5px;\\n font-size: 18px;\\n line-height: 40px;\\n }\\n\\n .title {\\n display: inline-block;\\n width: auto;\\n margin-top: -9px;\\n font-size: $font-size-base;\\n font-weight: normal;\\n line-height: 40px;\\n color: $body-color;\\n }\\n\\n .value {\\n float: right;\\n font-weight: 600;\\n }\\n\\n .bars {\\n position: absolute;\\n top: auto;\\n bottom: 0;\\n padding: 0;\\n }\\n }\\n }\\n}\\n\\n.icons-list {\\n padding: 0;\\n margin: 0;\\n list-style: none;\\n\\n li {\\n position: relative;\\n height: 40px;\\n vertical-align: middle;\\n\\n i {\\n display: block;\\n float: left;\\n width: 35px !important;\\n height: 35px !important;\\n margin: 2px;\\n line-height: 35px !important;\\n text-align: center;\\n }\\n\\n .desc {\\n height: 40px;\\n margin-left: 50px;\\n border-bottom: 1px solid $border-color;\\n\\n .title {\\n padding: 2px 0 0;\\n margin: 0;\\n }\\n small {\\n display: block;\\n margin-top: -4px;\\n color: $text-muted;\\n }\\n }\\n\\n .value {\\n position: absolute;\\n top: 2px;\\n right: 45px;\\n text-align: right;\\n\\n strong {\\n display: block;\\n margin-top: -3px;\\n }\\n }\\n\\n .actions {\\n position: absolute;\\n top: -4px;\\n right: 10px;\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n text-align: center;\\n\\n i {\\n float: none;\\n width: auto;\\n height: auto;\\n padding: 0;\\n margin: 0;\\n line-height: normal;\\n }\\n }\\n\\n &.divider {\\n height: 40px;\\n\\n i {\\n width: auto;\\n height: auto;\\n margin: 2px 0 0;\\n font-size: 18px;\\n }\\n }\\n }\\n}\\n\",\"// IE10&11 Flexbox fix\\n@media all and (-ms-high-contrast:none) {\\n html {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n\\n// app-dashboard and app-root are Angular2+ selectors. You can add here your own selectors if you need.\\n.app,\\napp-dashboard,\\napp-root {\\n display: flex;\\n flex-direction: column;\\n min-height: 100vh;\\n}\\n\\n.app-header {\\n flex: 0 0 $navbar-height;\\n}\\n\\n.app-footer {\\n flex: 0 0 $footer-height;\\n}\\n\\n.app-body {\\n display: flex;\\n flex-direction: row;\\n flex-grow: 1;\\n overflow-x: hidden;\\n\\n .main {\\n flex: 1;\\n min-width: 0;\\n }\\n\\n .sidebar {\\n // $sidebar-width is the width of the columns\\n flex: 0 0 $sidebar-width;\\n // put the nav on the left\\n order: -1;\\n }\\n\\n .aside-menu {\\n // $aside-menu-width is the width of the columns\\n flex: 0 0 $aside-menu-width;\\n }\\n}\\n\\n//\\n// header\\n//\\n.header-fixed {\\n .app-header {\\n position: fixed;\\n z-index: $zindex-sticky;\\n width: 100%;\\n }\\n .app-body {\\n margin-top: $navbar-height;\\n }\\n}\\n\\n//\\n// Sidebar\\n//\\n.sidebar-hidden {\\n .sidebar {\\n margin-left: - $sidebar-width;\\n }\\n}\\n\\n.sidebar-fixed {\\n .sidebar {\\n position: fixed;\\n z-index: $zindex-sticky - 1;\\n width: $sidebar-width;\\n height: calc(100vh - #{$navbar-height});\\n // margin-top: - $navbar-height;\\n\\n // .sidebar-nav {\\n // height: calc(100vh - #{$navbar-height});\\n // }\\n }\\n\\n .main, .app-footer {\\n margin-left: $sidebar-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n}\\n\\n.sidebar-off-canvas {\\n .sidebar {\\n position: fixed;\\n z-index: $zindex-sticky - 1;\\n height: calc(100vh - #{$navbar-height});\\n }\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .sidebar-compact {\\n .sidebar {\\n flex: 0 0 $sidebar-compact-width;\\n }\\n\\n &.sidebar-hidden {\\n .sidebar {\\n margin-left: - $sidebar-compact-width;\\n }\\n }\\n\\n &.sidebar-fixed {\\n .main, .app-footer {\\n margin-left: $sidebar-compact-width;\\n }\\n\\n .sidebar {\\n width: $sidebar-compact-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n\\n .sidebar-minimized {\\n .sidebar {\\n flex: 0 0 $sidebar-minimized-width;\\n }\\n\\n &.sidebar-hidden {\\n .sidebar {\\n margin-left: - $sidebar-minimized-width;\\n }\\n }\\n\\n &.sidebar-fixed {\\n .main, .app-footer {\\n margin-left: $sidebar-minimized-width;\\n }\\n\\n .sidebar {\\n width: $sidebar-minimized-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n}\\n\\n//\\n// Aside Menu\\n//\\n.aside-menu-hidden {\\n .aside-menu {\\n margin-right: - $aside-menu-width;\\n }\\n}\\n\\n.aside-menu-fixed {\\n .aside-menu {\\n position: fixed;\\n right: 0;\\n height: 100%;\\n\\n .tab-content {\\n height: calc(100vh - #{$aside-menu-nav-padding-y * 2 + $font-size-base} - #{$navbar-height});\\n }\\n }\\n\\n .main, .app-footer {\\n margin-right: $aside-menu-width;\\n }\\n\\n &.aside-menu-hidden {\\n .main, .app-footer {\\n margin-right: 0;\\n }\\n }\\n}\\n\\n.aside-menu-off-canvas {\\n .aside-menu {\\n position: fixed;\\n right: 0;\\n z-index: $zindex-sticky - 1;\\n height: 100%;\\n\\n .tab-content {\\n height: calc(100vh - #{$aside-menu-nav-padding-y * 2 + $font-size-base} - #{$navbar-height});\\n }\\n }\\n}\\n\\n//\\n// Breadcrumb\\n//\\n.breadcrumb-fixed {\\n .main {\\n $breadcrumb-height: 2 * $breadcrumb-padding-y + $font-size-base + 1.5 * $spacer;\\n padding-top: $breadcrumb-height;\\n }\\n\\n .breadcrumb {\\n position: fixed;\\n top: $navbar-height;\\n right: 0;\\n left: 0;\\n z-index: $zindex-sticky - 2;\\n }\\n\\n // if sidebar + main + aside\\n .main:nth-child(2) {\\n .breadcrumb {\\n right: $aside-menu-width;\\n left: $sidebar-width;\\n }\\n }\\n\\n // if sidebar + main\\n .main:first-child {\\n .breadcrumb {\\n right: $aside-menu-width;\\n left: 0;\\n }\\n }\\n\\n // if main + aside\\n .main:last-child {\\n .breadcrumb {\\n right: 0;\\n }\\n }\\n\\n &.sidebar-minimized {\\n .main .breadcrumb {\\n left: $sidebar-minimized-width;\\n }\\n }\\n\\n &.sidebar-hidden, &.sidebar-off-canvas {\\n .main .breadcrumb {\\n left: 0;\\n }\\n }\\n\\n &.aside-menu-hidden, &.aside-menu-off-canvas {\\n .main .breadcrumb {\\n right: 0;\\n }\\n }\\n}\\n\\n//\\n// Footer\\n//\\n.footer-fixed {\\n .app-footer {\\n position: fixed;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: $zindex-sticky;\\n height: $footer-height;\\n }\\n\\n .app-body {\\n margin-bottom: $footer-height;\\n }\\n}\\n\\n//\\n// Animations\\n//\\n.app-header,\\n.app-footer,\\n.sidebar,\\n.main,\\n.aside-menu {\\n transition: margin-left $layout-transition-speed, margin-right $layout-transition-speed, width $layout-transition-speed, flex $layout-transition-speed;\\n}\\n.sidebar-nav {\\n transition: width $layout-transition-speed;\\n}\\n.breadcrumb {\\n transition: left $layout-transition-speed, right $layout-transition-speed, width $layout-transition-speed;\\n}\\n\\n//\\n// Mobile layout\\n//\\n\\n@include media-breakpoint-down(md) {\\n .app-header.navbar {\\n position: fixed !important;\\n z-index: $zindex-sticky;\\n width: 100%;\\n text-align: center;\\n background-color: $navbar-brand-bg;\\n @include borders($navbar-brand-border);\\n\\n .navbar-toggler {\\n @if (lightness( $navbar-brand-bg ) > 40) {\\n color: $navbar-color;\\n } @else {\\n color: #fff;\\n }\\n }\\n\\n .navbar-brand {\\n position: absolute;\\n left: 50%;\\n margin-left: - ($navbar-brand-width / 2);\\n }\\n }\\n\\n .app-body {\\n margin-top: $navbar-height;\\n }\\n\\n .breadcrumb-fixed {\\n .main:nth-child(2) .breadcrumb {\\n right: auto;\\n left: auto;\\n width: 100%;\\n }\\n }\\n\\n .sidebar {\\n position: fixed;\\n z-index: $zindex-sticky - 1;\\n width: $mobile-sidebar-width;\\n height: calc(100vh - #{$navbar-height});\\n margin-left: - $mobile-sidebar-width;\\n\\n .sidebar-nav,\\n .nav {\\n width: $mobile-sidebar-width;\\n min-height: calc(100vh - #{$navbar-height});\\n }\\n\\n .sidebar-minimizer {\\n display: none;\\n }\\n }\\n\\n .main, .app-footer {\\n margin-left: 0 !important;\\n }\\n\\n // .aside-menu {\\n // margin-right: - $aside-menu-width;\\n // }\\n\\n .sidebar-hidden {\\n .sidebar {\\n margin-left: - $mobile-sidebar-width;\\n }\\n }\\n\\n .sidebar-mobile-show {\\n .sidebar {\\n width: $mobile-sidebar-width;\\n margin-left: 0;\\n }\\n\\n .main {\\n margin-right: - $mobile-sidebar-width !important;\\n margin-left: $mobile-sidebar-width !important;\\n }\\n }\\n}\\n\",\"// scss-lint:disable QualifyingElement\\nhr.transparent {\\n border-top: 1px solid transparent;\\n}\\n\",\".bg-primary,\\n.bg-success,\\n.bg-info,\\n.bg-warning,\\n.bg-danger,\\n.bg-inverse {\\n color: #fff;\\n}\\n\",\"//border\\n@each $prop, $abbrev in (border: b) {\\n @each $size in (0,1,2) {\\n @if $size == 0 {\\n .#{$abbrev}-a-#{$size} { #{$prop}: 0 !important; } // a = All sides\\n .#{$abbrev}-t-#{$size} { #{$prop}-top: 0 !important; }\\n .#{$abbrev}-r-#{$size} { #{$prop}-right: 0 !important; }\\n .#{$abbrev}-b-#{$size} { #{$prop}-bottom: 0 !important; }\\n .#{$abbrev}-l-#{$size} { #{$prop}-left: 0 !important; }\\n } @else {\\n .#{$abbrev}-a-#{$size} { #{$prop}: $size * $border-width solid $border-color !important; } // a = All sides\\n .#{$abbrev}-t-#{$size} { #{$prop}-top: $size * $border-width solid $border-color !important; }\\n .#{$abbrev}-r-#{$size} { #{$prop}-right: $size * $border-width solid $border-color !important; }\\n .#{$abbrev}-b-#{$size} { #{$prop}-bottom: $size * $border-width solid $border-color !important; }\\n .#{$abbrev}-l-#{$size} { #{$prop}-left: $size * $border-width solid $border-color !important; }\\n }\\n }\\n}\\n\",\"//\\n// Utilities for common `display` values\\n//\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-down($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .d#{$infix}-down-none { display: none !important; }\\n // .d#{$infix}-inline { display: inline !important; }\\n // .d#{$infix}-inline-block { display: inline-block !important; }\\n // .d#{$infix}-block { display: block !important; }\\n // .d#{$infix}-table { display: table !important; }\\n // .d#{$infix}-table-cell { display: table-cell !important; }\\n // .d#{$infix}-flex { display: flex !important; }\\n // .d#{$infix}-inline-flex { display: inline-flex !important; }\\n }\\n}\\n\",\".pagination-datatables, .pagination {\\n li {\\n @extend .page-item;\\n\\n a {\\n @extend .page-link;\\n }\\n }\\n}\\n\\n.label-pill {\\n border-radius: 1rem !important;\\n}\\n\\n// temp fix for Vue & React\\n\\n// Open state for the dropdown\\n.open, .show {\\n // Remove the outline when :focus is triggered\\n > a {\\n outline: 0;\\n }\\n}\\n\\n// navbar dropdown fix\\n.navbar .dropdown-toggle {\\n @extend .nav-link;\\n\\n .img-avatar {\\n height: $navbar-height - 20px;\\n margin: 0 10px;\\n }\\n}\\n\\n.card-block {\\n @extend .card-body;\\n}\\n\",\"//\\n// RTL Support\\n//\\n// scss-lint:disable NestingDepth, SelectorDepth\\n*[dir=\\\"rtl\\\"] {\\n direction: rtl;\\n unicode-bidi: embed;\\n\\n ul {\\n -webkit-padding-start: 0;\\n }\\n\\n table tr th {\\n text-align: right;\\n }\\n\\n // Breadcrumb\\n\\n .breadcrumb-item {\\n float: right;\\n }\\n\\n .breadcrumb-menu {\\n right: auto;\\n left: $breadcrumb-padding-x;\\n }\\n\\n // Dropdown\\n .dropdown-item {\\n text-align: right;\\n\\n i {\\n margin-right: -10px;\\n margin-left: 10px;\\n }\\n\\n .badge {\\n right: auto;\\n left: 10px;\\n }\\n }\\n\\n //\\n // Sidebar\\n //\\n .sidebar-hidden {\\n .sidebar {\\n margin-right: - $sidebar-width;\\n }\\n }\\n\\n .sidebar-fixed {\\n .main, .app-footer {\\n margin-right: $sidebar-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-right: 0;\\n }\\n }\\n }\\n\\n .sidebar-minimized {\\n .sidebar {\\n flex: 0 0 $sidebar-minimized-width;\\n }\\n\\n &.sidebar-hidden {\\n .sidebar {\\n margin-right: - $sidebar-minimized-width;\\n margin-left: 0;\\n }\\n }\\n\\n &.sidebar-fixed {\\n .main, .app-footer {\\n margin-right: $sidebar-minimized-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n\\n //\\n // Aside Menu\\n //\\n .aside-menu-hidden {\\n .aside-menu {\\n margin-right: 0;\\n margin-left: - $aside-menu-width;\\n }\\n }\\n\\n .aside-menu-fixed {\\n .aside-menu {\\n right: auto;\\n left: 0;\\n }\\n\\n .main, .app-footer {\\n //margin-right: 0;\\n margin-left: $aside-menu-width;\\n }\\n\\n &.aside-menu-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n\\n .aside-menu-off-canvas {\\n .aside-menu {\\n position: fixed;\\n right: 0;\\n z-index: $zindex-sticky - 1;\\n height: 100%;\\n\\n .tab-content {\\n height: calc(100vh - #{$aside-menu-nav-padding-y * 2 + $font-size-base} - #{$navbar-height});\\n }\\n }\\n }\\n\\n // Sidebar Menu\\n .sidebar {\\n .sidebar-nav {\\n .nav {\\n .nav-item {\\n .nav-link {\\n direction: rtl;\\n i {\\n margin: 0 0 0 ($sidebar-nav-link-padding-x / 2);\\n }\\n .badge {\\n float: left;\\n margin-top: 2px;\\n // margin-left: 10px;\\n }\\n &.nav-dropdown-toggle {\\n &::before {\\n position: absolute;\\n right: auto !important;\\n left: $sidebar-nav-link-padding-x;\\n transform: rotate(180deg);\\n }\\n }\\n }\\n &.nav-dropdown {\\n &.open {\\n > .nav-link.nav-dropdown-toggle::before {\\n transform: rotate(270deg);\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\\n .sidebar-minimized .sidebar {\\n .nav-link {\\n padding-right: 0;\\n i {\\n float: right;\\n padding: 0;\\n margin: 0;\\n }\\n .badge {\\n right: auto;\\n left: 15px;\\n }\\n }\\n .nav > .nav-dropdown {\\n\\n &:hover {\\n > .nav-dropdown-items {\\n right: $sidebar-minimized-width;\\n left: 0;\\n }\\n }\\n }\\n }\\n\\n // Horizontal bars\\n .horizontal-bars {\\n\\n li {\\n\\n .bars {\\n padding-right: 100px;\\n padding-left: 0;\\n\\n .progress:first-child {\\n margin-bottom: 2px;\\n }\\n }\\n }\\n\\n &.type-2 {\\n\\n li {\\n\\n i {\\n margin-right: 5px;\\n margin-left: $spacer;\\n }\\n\\n .value {\\n float: left;\\n font-weight: 600;\\n }\\n\\n .bars {\\n padding: 0;\\n }\\n }\\n }\\n }\\n\\n // Icon list\\n .icons-list {\\n\\n li {\\n position: relative;\\n height: 40px;\\n vertical-align: middle;\\n\\n i {\\n float: right;\\n }\\n\\n .desc {\\n margin-right: 50px;\\n margin-left: 0;\\n }\\n\\n .value {\\n right: auto;\\n left: 45px;\\n text-align: left;\\n\\n strong {\\n display: block;\\n margin-top: -3px;\\n }\\n }\\n\\n .actions {\\n right: auto;\\n left: 10px;\\n }\\n }\\n }\\n\\n // Callouts\\n .callout {\\n border: 0 solid $border-color;\\n border-right-width: .25rem;\\n\\n @each $color, $value in $theme-colors {\\n &.callout-#{$color} {\\n border-right-color: $value;\\n }\\n }\\n\\n .chart-wrapper {\\n left: 0;\\n float: left;\\n }\\n }\\n\\n .callout-default {\\n border-right-color: $text-muted;\\n }\\n}\\n\",\"// Here you can add other styles\\n\\n\\nform.rjsf label {\\n margin-bottom: 0;\\n}\\n\\nform.rjsf div>p.field-description {\\n font-size: 0.7rem;\\n font-style: italic;\\n margin-bottom: 0px;\\n}\\n\\nform.rjsf input {\\n width: auto;\\n}\\n\\nform.rjsf div.row.array-item {\\n background-color: aliceblue;\\n margin-bottom: 3px;\\n}\\n\\n@media (max-width: 767px) {\\n .container-fluid, .row {\\n padding:0 2px !important;\\n }\\n .navbar-header {\\n margin:0px;\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".fa-pulse {\\n display: inline-block;\\n -moz-animation: pulse 2s infinite linear;\\n -o-animation: pulse 2s infinite linear;\\n -webkit-animation: pulse 2s infinite linear;\\n animation: pulse 2s infinite linear;\\n}\\n\\n.fa-pulse-fast {\\n display: inline-block;\\n -moz-animation: pulse 1s infinite linear;\\n -o-animation: pulse 1s infinite linear;\\n -webkit-animation: pulse 1s infinite linear;\\n animation: pulse 1s infinite linear;\\n}\\n\\n@-webkit-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-moz-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-o-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-ms-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/fa-pulse.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qBAAqB;EACrB,wCAAwC;EACxC,sCAAsC;EACtC,2CAA2C;EAC3C,mCAAmC;AACrC;;AAEA;EACE,qBAAqB;EACrB,wCAAwC;EACxC,sCAAsC;EACtC,2CAA2C;EAC3C,mCAAmC;AACrC;;AAEA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AACA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AACA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AACA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AACA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF\",\"sourcesContent\":[\".fa-pulse {\\n display: inline-block;\\n -moz-animation: pulse 2s infinite linear;\\n -o-animation: pulse 2s infinite linear;\\n -webkit-animation: pulse 2s infinite linear;\\n animation: pulse 2s infinite linear;\\n}\\n\\n.fa-pulse-fast {\\n display: inline-block;\\n -moz-animation: pulse 1s infinite linear;\\n -o-animation: pulse 1s infinite linear;\\n -webkit-animation: pulse 1s infinite linear;\\n animation: pulse 1s infinite linear;\\n}\\n\\n@-webkit-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-moz-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-o-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-ms-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default __webpack_public_path__ + \"./fonts/signal-k-logo-image-text.d132ec2c4f0269c103c868aaa6868f01.svg\";"],"names":["options","locals","authFetch","url","fetch","credentials","async","login","dispatch","username","password","rememberMe","callback","payload","request","method","headers","body","JSON","stringify","response","json","status","type","data","message","fetchAllData","restart","confirm","window","serverRoutesPrefix","then","buildFetchAction","endpoint","prefix","isUndefined","fetchLoginStatus","fetchPlugins","fetchWebapps","fetchAddons","fetchApps","fetchAccessRequests","fetchServerSpecification","openServerEventsConnection","isReconnect","proto","location","protocol","ws","WebSocket","host","onmessage","event","serverEvent","parse","name","skSelf","self","messageHandler","onclose","console","log","onerror","error","onopen","reload","Header","Component","constructor","props","super","this","toggleDropdown","bind","state","dropdownOpen","componentDidMount","addEventListener","document","classList","toggle","setState","sidebarToggle","e","preventDefault","sidebarMinimize","mobileSidebarToggle","asideToggle","render","React","className","NavbarToggler","onClick","NavbarBrand","href","Nav","navbar","NavItem","loginStatus","userLevel","NavLink","restarting","logout","authenticationRequired","Dropdown","nav","isOpen","DropdownToggle","DropdownMenu","right","DropdownItem","connect","ok","Error","statusText","catch","SidebarFooter","SidebarForm","SidebarHeader","SidebarMinimizer","brandMinimize","Sidebar","handleClick","target","parentElement","activeRoute","routeName","pathname","indexOf","badge","classes","classNames","class","Badge","color","variant","text","navDropdown","item","key","icon","navList","children","navType","idx","title","wrapper","element","attributes","divider","navItem","navLink","isExternal","RsNavLink","link","to","activeClassName","items","map","index","substring","appUpdates","appStore","updates","length","updatesBadge","availableBadge","serverUpdateBadge","accessRequestsBadge","accessRequests","storeAvailable","serverUpdate","result","openPlugin","localStorage","getItem","push","apply","security","allowDeviceAccessRequests","allowNewUserRegistration","Aside","Footer","mmsi","uuid","vesselInfo","serverSpecification","server","version","Link","pluginNameLink","id","providerIdLink","startsWith","serverStatistics","websocketStatus","providerStatus","deltaRate","numberOfAvailablePaths","wsClients","providerStatistics","uptime","errorCount","filter","s","uptimeD","Math","floor","uptimeH","uptimeM","errors","getLinkType","providerId","find","statusType","err","inputPulseIconClass","providerStats","outputPulseIconClass","writeRate","renderActivity","linkType","history","style","deltaCount","transform","writeCount","toFixed","Progress","value","Card","CardHeader","CardBody","Row","Col","xs","md","fontSize","Object","keys","sort","some","Table","hover","responsive","bordered","striped","size","renderStatus","statusClass","lastError","warning","lastErrorTimeStamp","toLazyDynamicComponent","moduleName","component","Promise","resolve","reject","container","toSafeModuleId","undefined","init","__webpack_share_scopes__","default","get","factory","ex","replace","EnableSecurity","enabling","errorMessage","handleInputChange","handleInputKeyUp","userId","noUsers","Login","Container","CardGroup","securityWasEnabled","Form","InputGroup","InputGroupAddon","addonType","InputGroupText","Input","placeholder","onChange","onKeyUp","Button","loggingIn","loginErrorMessage","checked","Label","Dashboard","wsProto","Embedded","match","params","moduleId","websockets","adminUI","hideSideBar","dispatchEvent","Event","getApplicationUserData","appDataVersion","path","r","setApplicationUserData","openWebsocket","knownParams","queryParam","p","i","x","v","join","ReconnectingWebSocket","context","cParts","split","slice","componentWillUnmount","forEach","close","backgroundColor","height","Suspense","fallback","mapStateToProps","propTypes","header","PropTypes","mainText","footer","cssModule","bgImage","Widget02","padding","card","lead","mapToCssModules","_extends","backgroundSize","backgroundImage","width","blockIcon","CardFooter","cardFooter","defaultProps","Webapps","addonComponents","setAddonComponents","addons","componentDidUpdate","prevProps","webapps","webAppInfo","webappInfo","keywords","includes","lg","xl","Webapp","signalk","displayName","description","appIcon","c","timestampFormat","metaStorageKey","pauseStorageKey","contextStorageKey","searchStorageKey","fetchSources","sources","values","source","device","n2k","productName","manufacturerName","DataBrowser","hasData","webSocket","didSubscribe","pause","includeMeta","meta","search","handlePause","handleMessage","handleContextChange","handleSearch","handleMeta","msg","isNew","contextMeta","update","pgn","sentence","vp","k","$source","timestamp","moment","format","subscribeToDataIfNeeded","sub","subscribe","period","send","unsubscribeToData","unsubscribe","setItem","action","encType","onSubmit","FormGroup","row","htmlFor","toLowerCase","formatted","units","lastIndexOf","CopyToClipboardWithFade","whiteSpace","JSONTree","theme","sortObjectKeys","hideRoot","opacity","onCopy","setTimeout","CopyToClipboard","inputStorageKey","DELTAS_TAB_ID","PATHS_TAB_ID","N2KJSON_TAB_ID","PUTRESULTS_TAB_ID","LINT_ERROR_TAB_ID","Playground","input","deltas","n2kJson","inputIsJson","isJson","sending","activeTab","handleExecute","handleInput","beautify","inputWaitTimeout","clearTimeout","jsonlint","jsonError","putResults","sendToServer","start","trim","charAt","delta","tab","FormText","rows","disabled","paddingLeft","paddingTop","tabs","classnames","active","TabContent","TabPane","tabId","overflowY","maxHeight","border","n2kData","ThisSession","thisSessionApps","installingApps","app","progress","isInstalling","isRemoving","isWaiting","isRemove","animated","installFailed","author","npmUrl","AppsList","installing","apps","borderBottom","isWebapp","isEmbeddableWebapp","isPlugin","mainIcon","overflow","marginRight","categories","installedVersion","listName","installApp","removeApp","updateInstalling","that","viewParams","defaultCategory","installed","AppTable","viewData","view","categorized","categorize","category","handleCategoryChange","searchResults","searchApps","searchString","lowerCase","plugin","schema","uiSchema","topSchema","properties","configuration","statusMessage","enabled","enableLogging","enableDebug","formData","submitData","EmbeddedPluginConfigurationForm","packageName","save","saveData","openPluginStorageKey","PluginConfigurationList","plugins","lastOpenedPlugin","searchPlugins","toggleForm","clickedIndex","openedPluginId","pluginid","removeItem","alert","PluginCard","isConfigurator","Headers","pluginData","labelStyle","marginLeft","marginBottom","configurationRequired","ref","sm","Fragment","role","PluginConfigurationForm","scrollTo","top","offsetTop","behavior","fetchSecurityConfig","adminUIOrigin","Settings","handleChange","handleSaveConfig","allow_readonly","expiration","allowedCorsOrigins","check","fetchSecurityUsers","users","Users","handleAddUser","handleCancel","handleApply","handleUserChange","deleteUser","selectedUser","selectedIndex","refs","scrollIntoView","confirmPassword","userClicked","user","fetchSecurityDevices","devices","Devices","handleDeviceChange","deleteDevice","selectedDevice","permissions","clientId","deviceClicked","convertPermissions","requestedPermissions","securityDevices","Register","email","registrationSent","handleCreate","targetName","block","AccessRequests","selectedRequest","accessRequestsApproving","accessRequestsDenying","handleRequestChange","handleAccessRequest","identifier","approved","stateKey","config","requestClicked","req","accessIdentifier","accessDescription","ip","fetchVessel","VesselConfiguration","handleSaveVessel","callsignVhf","aisShipType","draft","beam","gpsFromBow","gpsFromCenter","N2KFilters","handleAddFilter","handleEnabledChange","filterChanged","deleteFilter","filters","splice","filtersEnabled","sourceName","useCanName","BasicProvider","hasAnalyzer","TypeComponent","NMEA2000","NMEA0183","SignalK","Seatalk","FileStream","LoggingInput","dummyEvent","OverrideTimestamps","onPropChange","TextInput","helpText","TextAreaInput","DeviceInput","serialports","portInfo","isManualEntry","isListedDevice","manualEntryValue","serialportListOptions","deviceListMap","reduce","acc","concat","labels","j","logging","ValidateChecksumInput","validateChecksum","appendChecksum","overrideTimestamp","RemoveNullsInput","removeNulls","AppendChecksum","SentenceEventInput","sentenceEvent","DataTypeInput","dataType","BaudRateIntput","baudrate","BaudRateIntputCanboat","StdOutInput","getDerivedStateFromProps","toStdout","Array","isArray","IgnoredSentences","ignoredSentences","PortInput","port","HostInput","NoDataReceivedTimeoutInput","noDataReceivedTimeout","RemoteSelfInput","remoteSelf","Suppress0183Checkbox","suppress0183event","UseCanNameInput","CollectNetworkStatsInput","sendNetworkStats","interface","serialParams","useDiscovery","selfsignedcert","subscription","selfHandling","gpios","gpio","gpioInvert","filename","SOURCEPRIOS_PRIO_CHANGED","SOURCEPRIOS_PRIO_DELETED","SOURCEPRIOS_PRIO_MOVED","SOURCEPRIOS_PATH_CHANGED","SOURCEPRIOS_PATH_DELETED","SOURCEPRIOS_SAVING","SOURCEPRIOS_SAVED","SOURCEPRIOS_SAVE_FAILED","SOURCEPRIOS_SAVE_FAILED_OVER","checkTimeouts","sourcePriorities","prio","timeout","thisOne","Number","isNaN","reduceSourcePriorities","saveState","pathIndex","sourceRef","change","prios","priorities","dirty","remove","_","timeoutsOk","tmp","isSaving","saveFailed","fetchSourceRefs","cb","pathResponse","sourceRefs","uniq","PrefsEditor","toggleEditor","Collapse","Width","label","Creatable","menuPortalTarget","SourcePriorities","availablePaths","pathsArray","Alert","pathPriority","sourcePrioritySave","sourcePrioritiesData","fetchProviders","selectedProvider","selectedProviderId","provider","findIndex","originalId","providers","runDiscovery","ProvidersConfiguration","handleProviderChange","handleProviderPropChange","handleAddProvider","handleDelete","set","editable","wasDiscovered","discoveredProviders","providerClicked","ProviderType","ApplicableStatus","applicable","scrollMarginTop","readOnly","fetchLogfileList","okResponse","authorized","logfileslist","ListGroup","logfilesToRows","logfiles","datesWithHours","logfile","date","substr","hour","ListGroupItem","fetchSettings","ServerSettings","handleOptionChange","handleInterfaceChange","handleSaveSettings","interfaces","fieldColWidthMd","runFromSystemd","ssl","sslport","lineHeight","SettableInterfaces","pruneContextsMinutes","loggingDirectory","keepMostRecentLogsOnly","logCountToKeep","applicationData","tcp","ReduxedSettings","LogFiles","BackupRestore","restoreFile","restoreState","includePlugins","fileChanged","handleRestoreFileChange","includePluginsChange","backup","validate","restore","cancelRestore","files","restoreContents","res","FormData","append","Accept","restoreStatus","percentComplete","ServerLogs","didSubScribe","debugKeys","handleDebug","fetchDebugKeys","subscribeToLogsIfNeeded","unsubscribeToLogs","doHandleDebug","handleDebugCheckbox","keysToSend","debugEnabled","toString","handleRememberDebug","isMulti","rememberDebug","LogList","end","fontFamily","entries","logEntry","PureLogRow","d","el","ReactHtmlParser","ServerUpdate","chanelog","handleUpdate","fetchChangelog","changelog","pushState","isInstalled","info","canUpdateServer","isInDocker","withRouter","Full","suppressPadding","fluid","Switch","Route","loginOrOriginal","Apps","Configuration","ServerLog","SecuritySettings","Redirect","from","BaseComponent","componentSupportsReadOnly","Restricted","hasError","getDerivedStateFromError","readOnlyAccess","loginRequired","convert","Convert","logEntryCount","available","store","createStore","nameCollator","l","webSocketTimer","clearInterval","setInterval","html","isError","ts","toHtml","escape","shift","sourcePrioritiesMap","applyMiddleware","thunk","left","__webpack_init_sharing__","ReactDOM","HashRouter","Provider","getElementById","___CSS_LOADER_EXPORT___","module","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}
|