commit f3a8229fda8a0f3283fdff9631352d59c1dec29c Author: 강석 최 Date: Fri Oct 21 10:53:38 2022 +0900 프로젝트 생성 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e204fae --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ +.vs/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..30d4149 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +#해양경찰청 외사종합포털 + +java 11 +postgreSql 14.2 + +springboot 2.7.2 +thymeleaf 3.0.15 +bootstrap 5.2.0 diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..1225f8f --- /dev/null +++ b/build.gradle @@ -0,0 +1,40 @@ +plugins { + id 'org.springframework.boot' version '2.7.2' + id 'io.spring.dependency-management' version '1.0.12.RELEASE' + id 'java' +} + +group = 'com.dbnt' +version = '0.0.1-SNAPSHOT' +sourceCompatibility = '11' + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +repositories { + mavenCentral() +} + +dependencies { + compileOnly 'org.projectlombok:lombok:1.18.24' + implementation 'org.springframework.boot:spring-boot-starter-actuator:2.7.2' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.7.2' + implementation 'org.springframework.boot:spring-boot-starter-security:2.7.2' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:2.7.2' + implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:3.1.0' + implementation 'org.springframework.boot:spring-boot-starter-web:2.7.2' + implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' + implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.0.4.RELEASE' + implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' + //엑셀다운 + implementation 'org.apache.poi:poi:4.1.0' + implementation 'org.apache.poi:poi-ooxml:4.1.0' + + developmentOnly 'org.springframework.boot:spring-boot-devtools:2.7.2' + runtimeOnly 'org.postgresql:postgresql:42.3.6' + annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor:2.7.2' + annotationProcessor 'org.projectlombok:lombok:1.18.24' +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..249e583 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..8049c68 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..a69d9cb --- /dev/null +++ b/gradlew @@ -0,0 +1,240 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f127cfd --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,91 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..5ebe3ea --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'faisp' diff --git a/src/main/java/com/dbnt/faisp/FaispApplication.java b/src/main/java/com/dbnt/faisp/FaispApplication.java new file mode 100644 index 0000000..7871175 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/FaispApplication.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class FaispApplication { + + public static void main(String[] args) { + SpringApplication.run(FaispApplication.class, args); + } + +} diff --git a/src/main/java/com/dbnt/faisp/authMgt/AuthMgtController.java b/src/main/java/com/dbnt/faisp/authMgt/AuthMgtController.java new file mode 100644 index 0000000..a1f5ec2 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/AuthMgtController.java @@ -0,0 +1,49 @@ +package com.dbnt.faisp.authMgt; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.authMgt.model.AuthMgt; +import com.dbnt.faisp.userInfo.service.UserInfoService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import java.util.HashMap; +import java.util.Map; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/authMgt") +public class AuthMgtController { + + private final UserInfoService userInfoService; + private final AuthMgtService authMgtService; + + @GetMapping("/authMgtPage") + public ModelAndView authMgtPage(UserInfo userInfo) { + ModelAndView mav = new ModelAndView("adminPage/authMgt/authMgt"); + userInfo.setQueryInfo(); + mav.addObject("userInfoList", userInfoService.selectUserInfoList(userInfo)); + userInfo.setContentCnt(userInfoService.selectUserInfoListCnt(userInfo)); + userInfo.setPaginationInfo(); + mav.addObject("searchParams", userInfo); + return mav; + } + + @GetMapping("/authEditModal") + public ModelAndView menuEditModal(UserInfo userInfo){ + ModelAndView mav = new ModelAndView("adminPage/authMgt/authEditModal"); + userInfo.setAccessConfigList(authMgtService.selectAccessConfigList(userInfo.getUserSeq(), null)); + userInfo.setApprovalConfigList(authMgtService.selectApprovalConfigList(userInfo.getUserSeq(), null)); + mav.addObject("userInfo", userInfo); + return mav; + } + + @PostMapping("/saveAuth") + public String saveAuth(@RequestBody AuthMgt authMgt){ + authMgtService.saveAuth(authMgt); + return ""; + } + +} diff --git a/src/main/java/com/dbnt/faisp/authMgt/mapper/AuthMgtMapper.java b/src/main/java/com/dbnt/faisp/authMgt/mapper/AuthMgtMapper.java new file mode 100644 index 0000000..6011cc1 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/mapper/AuthMgtMapper.java @@ -0,0 +1,17 @@ +package com.dbnt.faisp.authMgt.mapper; + +import com.dbnt.faisp.authMgt.model.AccessConfig; +import com.dbnt.faisp.authMgt.model.ApprovalConfig; +import com.dbnt.faisp.userInfo.model.UserInfo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface AuthMgtMapper { + + List selectAccessConfigList(Map params); + + List selectApprovalConfigList(Map params); +} diff --git a/src/main/java/com/dbnt/faisp/authMgt/model/AccessConfig.java b/src/main/java/com/dbnt/faisp/authMgt/model/AccessConfig.java new file mode 100644 index 0000000..9124443 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/model/AccessConfig.java @@ -0,0 +1,43 @@ +package com.dbnt.faisp.authMgt.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "access_config") +@IdClass(AccessConfig.AccessConfigId.class) +public class AccessConfig{ + @Id + @Column(name = "menu_key") + private Integer menuKey; + @Id + @Column(name = "user_seq") + private Integer userSeq; + @Column(name = "access_auth") + private String accessAuth; + + @Transient + private String cat1Cd; + @Transient + private String cat2Cd; + @Transient + private String cat3Cd; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class AccessConfigId implements Serializable { + private Integer menuKey; + private Integer userSeq; + } +} diff --git a/src/main/java/com/dbnt/faisp/authMgt/model/ApprovalConfig.java b/src/main/java/com/dbnt/faisp/authMgt/model/ApprovalConfig.java new file mode 100644 index 0000000..96f3084 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/model/ApprovalConfig.java @@ -0,0 +1,44 @@ +package com.dbnt.faisp.authMgt.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "approval_config") +@IdClass(ApprovalConfig.ApprovalConfigId.class) +public class ApprovalConfig { + @Id + @Column(name = "menu_key") + private Integer menuKey; + @Id + @Column(name = "user_seq") + private Integer userSeq; + @Column(name = "approval_auth") + private String approvalAuth; + + @Transient + private String cat1Cd; + @Transient + private String cat2Cd; + @Transient + private String cat3Cd; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ApprovalConfigId implements Serializable { + private Integer menuKey; + private Integer userSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/authMgt/model/AuthMgt.java b/src/main/java/com/dbnt/faisp/authMgt/model/AuthMgt.java new file mode 100644 index 0000000..813349f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/model/AuthMgt.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.authMgt.model; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class AuthMgt { + List accessConfigList; + List approvalConfigList; +} diff --git a/src/main/java/com/dbnt/faisp/authMgt/repository/AccessConfigRepository.java b/src/main/java/com/dbnt/faisp/authMgt/repository/AccessConfigRepository.java new file mode 100644 index 0000000..a3c484f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/repository/AccessConfigRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.authMgt.repository; + +import com.dbnt.faisp.authMgt.model.AccessConfig; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface AccessConfigRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/authMgt/repository/ApprovalConfigRepository.java b/src/main/java/com/dbnt/faisp/authMgt/repository/ApprovalConfigRepository.java new file mode 100644 index 0000000..c83ae09 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/repository/ApprovalConfigRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.authMgt.repository; + +import com.dbnt.faisp.authMgt.model.ApprovalConfig; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface ApprovalConfigRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/authMgt/service/AuthMgtService.java b/src/main/java/com/dbnt/faisp/authMgt/service/AuthMgtService.java new file mode 100644 index 0000000..1344cfd --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/service/AuthMgtService.java @@ -0,0 +1,43 @@ +package com.dbnt.faisp.authMgt.service; + +import com.dbnt.faisp.authMgt.mapper.AuthMgtMapper; +import com.dbnt.faisp.authMgt.model.AccessConfig; +import com.dbnt.faisp.authMgt.model.ApprovalConfig; +import com.dbnt.faisp.authMgt.model.AuthMgt; +import com.dbnt.faisp.authMgt.repository.AccessConfigRepository; +import com.dbnt.faisp.authMgt.repository.ApprovalConfigRepository; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +@Service +@RequiredArgsConstructor +public class AuthMgtService { + private final AuthMgtMapper authMgtMapper; + private final AccessConfigRepository accessConfigRepository; + private final ApprovalConfigRepository approvalConfigRepository; + + public List selectAccessConfigList(Integer userSeq, String url) { + Map params = new HashMap<>(); + params.put("userSeq", userSeq); + params.put("menuUrl", url); + return authMgtMapper.selectAccessConfigList(params); + } + + public List selectApprovalConfigList(Integer userSeq, String url) { + Map params = new HashMap<>(); + params.put("userSeq", userSeq); + params.put("menuUrl", url); + return authMgtMapper.selectApprovalConfigList(params); + } + + public void saveAuth(AuthMgt authMgt) { + accessConfigRepository.saveAll(authMgt.getAccessConfigList()); + approvalConfigRepository.saveAll(authMgt.getApprovalConfigList()); + } +} diff --git a/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtController.java b/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtController.java new file mode 100644 index 0000000..22788e2 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtController.java @@ -0,0 +1,35 @@ +package com.dbnt.faisp.codeMgt; + +import com.dbnt.faisp.codeMgt.model.CodeCatg; +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/codeMgt") +public class CodeMgtController { + + private final CodeMgtService codeMgtService; + + @GetMapping("/codeMgtPage") + public ModelAndView codeMgtPage() { + ModelAndView mav = new ModelAndView("adminPage/codeMgt/codeMgt"); + return mav; + } + + @PostMapping("/saveCode") + @ResponseBody + public String saveCode(@RequestBody List codeCategoryList){ + codeMgtService.saveCode(codeCategoryList); + return ""; + } + + @GetMapping("/selectCodeCatgList") + public List selectCodeCatgList(){ + return codeMgtService.selectCodeCatgAndChild(); + } +} diff --git a/src/main/java/com/dbnt/faisp/codeMgt/model/CodeCatg.java b/src/main/java/com/dbnt/faisp/codeMgt/model/CodeCatg.java new file mode 100644 index 0000000..e719bc8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/codeMgt/model/CodeCatg.java @@ -0,0 +1,33 @@ +package com.dbnt.faisp.codeMgt.model; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "code_catg") +public class CodeCatg { + @Id + @Column(name = "category_cd") + private String categoryCd; + @Column(name = "category_value", nullable = false) + private String categoryValue; + @Column(name = "description") + private String description; + + @Transient + private String status; + @Transient + private List itemList; + +} diff --git a/src/main/java/com/dbnt/faisp/codeMgt/model/CodeMgt.java b/src/main/java/com/dbnt/faisp/codeMgt/model/CodeMgt.java new file mode 100644 index 0000000..0ce6f80 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/codeMgt/model/CodeMgt.java @@ -0,0 +1,48 @@ +package com.dbnt.faisp.codeMgt.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "code_mgt") +@IdClass(CodeMgt.CodeMgtId.class) +public class CodeMgt { + @Id + @Column(name = "category_cd") + private String categoryCd; + @Id + @Column(name = "item_cd") + private String itemCd; + @Column(name = "item_value", nullable = false) + private String itemValue; + @Column(name = "use_chk") + private String useChk; + + @Transient + private String status; + + @Override + public String toString() { + return "CodeMgt [categoryCd=" + categoryCd + ", itemCd=" + itemCd + ", itemValue=" + itemValue + ", useChk=" + + useChk + ", status=" + status + "]"; + } + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class CodeMgtId implements Serializable { + private String categoryCd; + private String itemCd; + } + +} diff --git a/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeCatgRepository.java b/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeCatgRepository.java new file mode 100644 index 0000000..55c94e7 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeCatgRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.codeMgt.repository; + +import com.dbnt.faisp.codeMgt.model.CodeCatg; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface CodeCatgRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeMgtRepository.java b/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeMgtRepository.java new file mode 100644 index 0000000..c34bb06 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeMgtRepository.java @@ -0,0 +1,15 @@ +package com.dbnt.faisp.codeMgt.repository; + +import com.dbnt.faisp.codeMgt.model.CodeMgt; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface CodeMgtRepository extends JpaRepository { + + List findByCategoryCdOrderByItemCdAsc(String categoryCd); + List findByCategoryCdAndUseChkOrderByItemCdAsc(String categoryCd, String useChk); + List findByUseChkOrderByItemCdAsc(String useChk); + List findByOrderByItemCdAsc(); +} diff --git a/src/main/java/com/dbnt/faisp/codeMgt/service/CodeMgtService.java b/src/main/java/com/dbnt/faisp/codeMgt/service/CodeMgtService.java new file mode 100644 index 0000000..c03b559 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/codeMgt/service/CodeMgtService.java @@ -0,0 +1,66 @@ +package com.dbnt.faisp.codeMgt.service; + +import com.dbnt.faisp.codeMgt.model.CodeCatg; +import com.dbnt.faisp.codeMgt.model.CodeMgt; +import com.dbnt.faisp.codeMgt.repository.CodeCatgRepository; +import com.dbnt.faisp.codeMgt.repository.CodeMgtRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +@RequiredArgsConstructor +public class CodeMgtService{ + + private final CodeMgtRepository codeMgtRepository; + private final CodeCatgRepository codeCatgRepository; + + @Transactional + public String saveCode(List codeMgtList){ + for(CodeCatg codeCatg: codeMgtList){ + codeCatgRepository.save(codeCatg); + if (codeCatg.getItemList().size()>0){ + codeItemSave(codeCatg.getItemList()); + } + } + return ""; + } + + private void codeItemSave(List itemList){ + codeMgtRepository.saveAll(itemList); + } + + public List selectCodeCatgAndChild() { + List codeCatgList = codeCatgRepository.findAll(); + for(CodeCatg codeCatg: codeCatgList){ + codeCatg.setItemList(codeMgtRepository.findByCategoryCdOrderByItemCdAsc(codeCatg.getCategoryCd())); + } + return codeCatgList; + } + + public Map> getCommonCode() { + //return codeMgtRepository.findByUseChkOrderByItemCdAsc("T"); + List categoryList = codeCatgRepository.findAll(); + List codeList = codeMgtRepository.findByOrderByItemCdAsc(); + Map> categoryMap = new HashMap<>(); + for(CodeCatg category: categoryList){ + List childList = new ArrayList<>(); + for(CodeMgt code: codeList){ + if(code.getCategoryCd().equals(category.getCategoryCd())){ + childList.add(code); + } + } + categoryMap.put(category.getCategoryCd(), childList); + } + return categoryMap; + } + + public List selectCodeMgtList(String categoryCd) { + return codeMgtRepository.findByCategoryCdAndUseChkOrderByItemCdAsc(categoryCd, "T"); + } +} diff --git a/src/main/java/com/dbnt/faisp/config/BaseController.java b/src/main/java/com/dbnt/faisp/config/BaseController.java new file mode 100644 index 0000000..6fb3d4e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/BaseController.java @@ -0,0 +1,72 @@ +package com.dbnt.faisp.config; + +import com.dbnt.faisp.menuMgt.service.MenuMgtService; +import com.dbnt.faisp.organMgt.service.OrganConfigService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.codeMgt.service.CodeMgtService; + +import com.dbnt.faisp.userInfo.service.UserInfoService; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpSession; + +@RestController +@RequiredArgsConstructor +public class BaseController { + + private final CodeMgtService codeMgtService; + private final OrganConfigService organConfigService; + private final MenuMgtService menuMgtService; + private final UserInfoService userInfoService; + + @GetMapping("/") + public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) { + ModelAndView mav = null; + if(loginUser == null){ + mav = new ModelAndView("redirect:/login"); + }else{ + mav = new ModelAndView("redirect:/dashboard"); + } + return mav; + } + + @GetMapping("/login") + public ModelAndView goLogin() { + ModelAndView mav = new ModelAndView("login/login"); + mav.addObject("OgList", codeMgtService.selectCodeMgtList("OG")); + mav.addObject("OfcList", codeMgtService.selectCodeMgtList("OFC")); + return mav; + } + + @GetMapping("/login-error") + public ModelAndView loginError() { + ModelAndView mav = new ModelAndView("login/login"); + mav.addObject("OgList", codeMgtService.selectCodeMgtList("OG")); + mav.addObject("OfcList", codeMgtService.selectCodeMgtList("OFC")); + mav.addObject("loginError", true); + return mav; + } + + @GetMapping("/denied") + public ModelAndView doDenied() { + ModelAndView mav = new ModelAndView("login/denied"); + return mav; + } + + @GetMapping("/dashboard") + public ModelAndView dashboard() { + ModelAndView mav = new ModelAndView("login/dashboard"); + return mav; + } + + public void setSession(@AuthenticationPrincipal UserInfo loginUser, HttpSession session){ + loginUser.setDownOrganCdList(organConfigService.selectDownOrganListWhereUserOgCd(loginUser.getOgCd())); + loginUser.setUpOrganCdList(organConfigService.selectUpOrganListWhereUserOgCd(loginUser.getOgCd())); + session.setAttribute("menuList", menuMgtService.selectAccessMenuListWhereUserSeq(loginUser.getUserSeq())); + session.setAttribute("commonCode", codeMgtService.getCommonCode()); + } +} diff --git a/src/main/java/com/dbnt/faisp/config/BaseModel.java b/src/main/java/com/dbnt/faisp/config/BaseModel.java new file mode 100644 index 0000000..9305411 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/BaseModel.java @@ -0,0 +1,67 @@ +package com.dbnt.faisp.config; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.Transient; +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +public class BaseModel { + @Transient + private List upOrganCdList; + @Transient + private List downOrganCdList; + @Transient + private Integer pageIndex=1; //요청페이지 + @Transient + private Integer firstIndex=0; // 쿼리의 시작 row + @Transient + private Integer rowCnt=10; //한 페이지에 표현되는 row 수 + @Transient + private Integer startNum=1; // pagination 시작값 + @Transient + private Integer endNum=5; // pagination 마지막값 + @Transient + private Integer maxNum; // pagination 최대값 + @Transient + private Integer contentCnt=0; + @Transient + private String dateSelector; + @Transient + private String startDate; + @Transient + private String endDate; + @Transient + private Boolean dashboardFlag = false; + + public void setQueryInfo(){ + setFirstIndex((getPageIndex()-1)*getRowCnt()); + } + + public void setPaginationInfo(){ + int contentCnt = getContentCnt(); + int rowCnt = getRowCnt(); + int maxNum = (int)Math.ceil(((double)contentCnt)/rowCnt); + if (maxNum==0){ + maxNum = 1; + } + setMaxNum(maxNum); + + int pageIndex = getPageIndex(); + int startNum = pageIndex - 2; + if(startNum <= 0){ + startNum = 1; + } + setStartNum(startNum); + + int endNum = startNum + 4; + if(endNum>maxNum){ + endNum = maxNum; + } + setEndNum(endNum); + } +} diff --git a/src/main/java/com/dbnt/faisp/config/BaseService.java b/src/main/java/com/dbnt/faisp/config/BaseService.java new file mode 100644 index 0000000..e36d5ac --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/BaseService.java @@ -0,0 +1,50 @@ +package com.dbnt.faisp.config; + +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; + +@Service +@RequiredArgsConstructor +public class BaseService { + + @Value("${spring.servlet.multipart.location}") + protected String locationPath; + + protected String calculationSize(double fileSize){ + String[] units = {"bytes", "KB", "MB", "GB", "TB", "PB"}; + double unitSelector = Math.floor(Math.log(fileSize)/Math.log(1024)); + if(fileSize>0){ + return Math.round((fileSize/Math.pow(1024, unitSelector))*100)/100d+" "+units[(int)unitSelector]; + }else{ + return ""; + } + } + + public void deleteStoredFile(File deleteFile){ + deleteFile.delete(); + } + + public void saveFile(MultipartFile file, File saveFile){ + if(file.getSize()!=0){ // 저장될 파일 확인 + if(!saveFile.exists()){ // 저장될 경로 확인 + if(saveFile.getParentFile().mkdirs()){ + try{ + saveFile.createNewFile(); + }catch (IOException e){ + e.printStackTrace(); + } + } + } + try { + file.transferTo(saveFile); + }catch (IllegalStateException | IOException e){ + e.printStackTrace(); + } + } + } +} diff --git a/src/main/java/com/dbnt/faisp/config/FileController.java b/src/main/java/com/dbnt/faisp/config/FileController.java new file mode 100644 index 0000000..49b4cbc --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/FileController.java @@ -0,0 +1,118 @@ +package com.dbnt.faisp.config; + +import com.dbnt.faisp.fpiMgt.affair.service.AffairService; +import com.dbnt.faisp.fpiMgt.affairPlan.service.PlanService; +import com.dbnt.faisp.fpiMgt.affairResult.service.ResultService; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.service.BoardInvestigationService; +import com.dbnt.faisp.publicBoard.service.PublicBoardService; +import lombok.RequiredArgsConstructor; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; + +@RestController +@RequiredArgsConstructor +public class FileController { + + private final PlanService planService; + private final PublicBoardService publicBoardService; + private final AffairService affairService; + private final ResultService resultService; + private final BoardInvestigationService boardInvestigationService; + + @GetMapping("/file/fileDownload") + public void fileDownload(HttpServletRequest request, + HttpServletResponse response, + String board, + Integer parentKey, + Integer fileSeq) { + FileInfo downloadFile = null; + switch (board){ + case "affairPlan": + downloadFile = planService.selectPlanFile(parentKey, fileSeq); + break; + case "publicFile": + downloadFile = publicBoardService.selectPublicFile(parentKey, fileSeq); + break; + case "affair": + downloadFile = affairService.selectAffairFile(parentKey, fileSeq); + break; + case "affairResult": + downloadFile = resultService.selectResultFile(parentKey, fileSeq); + break; + case "ivsgt": + downloadFile = boardInvestigationService.selectIvsgtFile(parentKey, fileSeq); + break; + } + + BufferedInputStream in; + BufferedOutputStream out; + try { + File file = new File(downloadFile.getSavePath(), downloadFile.getConvNm()); + + setDisposition(downloadFile.getFullName(), request, response); + in = new BufferedInputStream(new FileInputStream(file)); + out = new BufferedOutputStream(response.getOutputStream()); + FileCopyUtils.copy(in, out); + out.flush(); + if(out!=null) out.close(); + if(in!=null )in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws IOException { + String browser = getBrowser(request); + + String dispositionPrefix = "attachment; filename="; + String encodedFilename = null; + + if (browser.equals("MSIE")) { + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지 + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Firefox")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Opera")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Chrome")) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < filename.length(); i++) { + char c = filename.charAt(i); + if (c > '~') { + sb.append(URLEncoder.encode("" + c, "UTF-8")); + } else { + sb.append(c); + } + } + encodedFilename = sb.toString(); + } else { + throw new IOException("Not supported browser"); + } + + response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); + + if ("Opera".equals(browser)) { + response.setContentType("application/octet-stream;charset=UTF-8"); + } + } + + private String getBrowser(HttpServletRequest request) { + String header = request.getHeader("User-Agent"); + if (header.indexOf("MSIE") > -1) { + return "MSIE"; + } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지 + return "Trident"; + } else if (header.indexOf("Chrome") > -1) { + return "Chrome"; + } else if (header.indexOf("Opera") > -1) { + return "Opera"; + } + return "Firefox"; + } +} diff --git a/src/main/java/com/dbnt/faisp/config/FileInfo.java b/src/main/java/com/dbnt/faisp/config/FileInfo.java new file mode 100644 index 0000000..ffb2120 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/FileInfo.java @@ -0,0 +1,21 @@ +package com.dbnt.faisp.config; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class FileInfo { + + private String origNm; + private String convNm; + private String fileExtn; + private String fileSize; + private String savePath; + + public String getFullName(){ + return getOrigNm()+"."+getFileExtn(); + } +} \ No newline at end of file diff --git a/src/main/java/com/dbnt/faisp/config/LogStatus.java b/src/main/java/com/dbnt/faisp/config/LogStatus.java new file mode 100644 index 0000000..c136364 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/LogStatus.java @@ -0,0 +1,28 @@ +package com.dbnt.faisp.config; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.HashMap; + +@AllArgsConstructor +@Getter +public enum LogStatus { + WRITE("작성"), + MODIFY("수정"), + MOVE("이동"), + DELETE("삭제"), + FILE_ADD("파일추가"), + FILE_REMOVE("파일삭제"), + FILE_DOWN("파일다운로드"); + + private String value; + + public static HashMap getStatusMap(){ + HashMap statusMap = new HashMap<>(); + for(LogStatus status: LogStatus.values()){ + statusMap.put(status.name(), status.getValue()); + } + return statusMap; + } +} diff --git a/src/main/java/com/dbnt/faisp/config/ModalController.java b/src/main/java/com/dbnt/faisp/config/ModalController.java new file mode 100644 index 0000000..f8568d0 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/ModalController.java @@ -0,0 +1,33 @@ +package com.dbnt.faisp.config; + +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import com.dbnt.faisp.menuMgt.service.MenuMgtService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/modal") +public class ModalController { + + private final MenuMgtService menuMgtService; + + @GetMapping("/menuModal") + public ModelAndView menuModalPage(@AuthenticationPrincipal UserInfo loginUser, MenuMgt menuMgt){ + ModelAndView mav = new ModelAndView("commonModal/menuModal"); + menuMgt.setUserSeq(loginUser.getUserSeq()); + menuMgt.setQueryInfo(); + mav.addObject("menuMgtList", menuMgtService.selectMenuMgtListToAccessAuth(menuMgt)); + menuMgt.setContentCnt(menuMgtService.selectMenuMgtListToAccessAuthCnt(menuMgt)); + menuMgt.setPaginationInfo(); + mav.addObject("searchParams", menuMgt); + return mav; + } + +} diff --git a/src/main/java/com/dbnt/faisp/config/Role.java b/src/main/java/com/dbnt/faisp/config/Role.java new file mode 100644 index 0000000..4aecfbc --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/Role.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.config; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public enum Role { + USER("ROLE_USER"), + SUB_ADMIN("ROLE_SUB_ADMIN"), + ADMIN("ROLE_ADMIN"); + + private String value; +} diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java new file mode 100644 index 0000000..1939c12 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java @@ -0,0 +1,126 @@ +package com.dbnt.faisp.config; + +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.DefaultRedirectStrategy; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.access.AccessDeniedHandler; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; +import org.springframework.security.web.savedrequest.HttpSessionRequestCache; +import org.springframework.security.web.savedrequest.SavedRequest; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; + +import javax.servlet.http.HttpServletResponse; + +@Configuration +@EnableWebSecurity +@RequiredArgsConstructor +public class SecurityConfig{ + private final Logger log = LoggerFactory.getLogger(getClass()); + private final BaseController baseController; + + @Bean + public PasswordEncoder passwordEncoder(){ + return new Pbkdf2PasswordEncoder(); + } + + @Bean + public WebSecurityCustomizer webSecurityCustomizer() { + return (web) -> web.ignoring().antMatchers("/css/**", "/img/**", "/js/**", "/vendor/**"); + } + + @Bean + public AccessDeniedHandler accessDeniedHandler() { + log.warn("accessDeniedHandler"); + return (request, response, e) -> { + response.setStatus(HttpServletResponse.SC_FORBIDDEN); + response.setContentType("text/html;charset=UTF-8"); + response.getWriter().println(""); + response.getWriter().flush(); + response.getWriter().close(); + }; + } + + @Bean + public AuthenticationEntryPoint authenticationEntryPoint() { + return (request, response, e) -> { + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + response.setContentType("text/html;charset=UTF-8"); + response.getWriter().println(""); + response.getWriter().flush(); + response.getWriter().close(); + }; + } + + @Bean + public AuthenticationSuccessHandler loginSuccessHandler() { + return (request, response, authentication) -> { + SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request,response); + baseController.setSession((UserInfo)authentication.getPrincipal(), request.getSession()); + if(savedRequest != null){ + String targetUrl = savedRequest.getRedirectUrl(); + new DefaultRedirectStrategy().sendRedirect(request,response,targetUrl); + }else{ + new DefaultRedirectStrategy().sendRedirect(request,response,"/"); + } + }; + } + + @Bean + protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { + http.authorizeRequests() // 페이지 권한 설정 + .antMatchers( + "/dashboard", + "/myInfo/**", + "/modal/**", + "/publicBoard/**", + "/faRpt/**", + "/affairPlan/**", + "/affair/**", + "/affairResult/**", + "/equip/**", + "/target/**", + "/translator/**" + ).hasRole(Role.USER.name()) // USER 접근 허용 + .antMatchers( + "/authMgt/**", + "/userMgt/**", + "/organMgt/**" + ).hasRole(Role.SUB_ADMIN.name()) // SUB_ADMIN 접근 허용 + .antMatchers( + "/codeMgt/**", + "/menuMgt/**" + ).hasRole(Role.ADMIN.name()) // ADMIN 접근 허용 + .antMatchers("/login").permitAll() // 로그인 페이지는 권한 없이 접근 허용 + .and() // 로그인 설정 + .formLogin().loginPage("/login") // Custom login form 사용 + .failureUrl("/login-error") // 로그인 실패 시 이동 + .defaultSuccessUrl("/") // 로그인 성공 시 이동 + /*.failureHandler((request, response, exception) -> { + + })*/ // 로그인 실패시 동작 수행 + .successHandler(loginSuccessHandler()) // 로그인 성공시 동작 수행. + .and() // 로그아웃 설정 + .logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")) // 로그아웃 시 URL 재정의 + .logoutSuccessUrl("/") // 로그아웃 성공 시 redirect 이동 + .invalidateHttpSession(true) // HTTP Session 초기화 + .deleteCookies("JSESSIONID") // 특정 쿠키 제거 + .and() // 403 예외처리 핸들링 + //.exceptionHandling().accessDeniedPage("/denied"); + .exceptionHandling() + .accessDeniedHandler(accessDeniedHandler()) + .authenticationEntryPoint(authenticationEntryPoint()); + return http.build(); + } + +} diff --git a/src/main/java/com/dbnt/faisp/equip/EquipController.java b/src/main/java/com/dbnt/faisp/equip/EquipController.java new file mode 100644 index 0000000..c08a685 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/EquipController.java @@ -0,0 +1,435 @@ +package com.dbnt.faisp.equip; + + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.equip.model.CellPhone; +import com.dbnt.faisp.equip.model.Equip; +import com.dbnt.faisp.equip.model.EquipLog; +import com.dbnt.faisp.equip.model.UseList; +import com.dbnt.faisp.equip.service.EquipService; +import com.dbnt.faisp.organMgt.service.OrganConfigService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.userInfo.service.UserInfoService; +import com.dbnt.faisp.util.ParamMap; +import com.dbnt.faisp.util.Utils; + +import lombok.RequiredArgsConstructor; + +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.time.LocalDateTime; +import java.util.List; + +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/equip") +public class EquipController { + + private final EquipService equipService; + private final AuthMgtService authMgtService; + private final OrganConfigService organConfigService; + private final UserInfoService userInfoService; + + @GetMapping("/equipStatus") + public ModelAndView equipStatus(@AuthenticationPrincipal UserInfo loginUser, Equip equip) { + ModelAndView mav = new ModelAndView("equip/equipStatus"); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("equipList", equipService.selectEquipStatus(equip)); + return mav; + } + + @GetMapping("/equipEditModal") + public ModelAndView equipEditModal(@AuthenticationPrincipal UserInfo loginUser) { + ModelAndView mav = new ModelAndView("equip/equipEditModal"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("userOrgan", loginUser.getOgCd()); + mav.addObject("accessAuth", accessAuth); + + return mav; + } + + + @GetMapping("/equipTypeSelecBox") + public ModelAndView equipTypeSelecBox(String equType) { + ModelAndView mav = new ModelAndView("equip/equipTypeSelecBox"); + mav.addObject("equType", equType); + return mav; + } + + @PostMapping("/saveEquip") + public void saveEquip(@AuthenticationPrincipal UserInfo loginUser,Equip equip, MultipartHttpServletRequest request){ + equip.setWrtNm(loginUser.getUserId()); + equip.setWrtOrgan(loginUser.getOgCd()); + equip.setWrtDt(LocalDateTime.now()); + equipService.saveEquip(equip,request); + } + + @GetMapping("/List") + public ModelAndView equipList(@AuthenticationPrincipal UserInfo loginUser,Equip equip) { + ModelAndView mav = new ModelAndView("equip/equipList"); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + equip.setDownOrganCdList(loginUser.getDownOrganCdList()); + ParamMap equType = equipService.selectEduType(equip); + mav.addObject("equType", equType.get("equ_type")); + mav.addObject("detailType", equType.get("detail_type")); + equip.setQueryInfo(); + mav.addObject("equipList", equipService.selectEquipList(equip)); + equip.setContentCnt(equipService.selectEquipListCnt(equip)); + equip.setPaginationInfo(); + mav.addObject("searchParams", equip); + + return mav; + } + + @GetMapping("/updatePage") + public ModelAndView equipUpdatePage(@AuthenticationPrincipal UserInfo loginUser, Equip equip) { + ModelAndView mav = new ModelAndView("equip/equipModifyModal"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("userId", loginUser.getUserId()); + mav.addObject("wrtId", equipService.selectEquipFirstId(equip)); + mav.addObject("equInfo", equipService.selectEquipInfo(equip)); + return mav; + } + + @PostMapping("/updateEquip") + @ResponseBody + public int updateEquip(@AuthenticationPrincipal UserInfo loginUser,Equip equip, MultipartHttpServletRequest request){ + equip.setWrtNm(loginUser.getUserId()); + equip.setWrtOrgan(loginUser.getOgCd()); + equip.setWrtDt(LocalDateTime.now()); + int result = equipService.updateEquip(equip,request); + return result; + } + + @GetMapping("/historyView") + public ModelAndView historyView(Equip equip) { + ModelAndView mav = new ModelAndView("equip/equipHistory"); + mav.addObject("equList", equipService.selectHistoryView(equip)); + return mav; + } + + @GetMapping("/HistoryDetail") + @ResponseBody + public Equip HistoryDetail(Equip equip){ + return equipService.selectHistoryDetail(equip); + } + + @PostMapping("/epuipDelete") + public void epuipDelete(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List equip){ + equipService.equipDelete(equip,loginUser); + } + + @GetMapping("/getEquipImg") + public void getThumbImage(Equip equip , HttpServletResponse response) throws Exception { + + Equip dbImg = equipService.selectEquipInfo(equip); + + String realFile = dbImg.getFilePath()+"/"+ dbImg.getConvNm(); + String fileNm = dbImg.getConvNm(); + + + BufferedOutputStream out = null; + InputStream in = null; + + try { + response.setContentType("image/jpeg;charset=UTF-8"); + response.setHeader("Content-Disposition", "inline;filename=" + fileNm); + File file = new File(realFile); +// File file = new File(realFile + "/" + fileNm); + if(file.exists()){ + in = new FileInputStream(file); + out = new BufferedOutputStream(response.getOutputStream()); + int len; + byte[] buf = new byte[1024]; + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + } + } + } catch (Exception e) { + + } finally { + if(out != null){ out.flush(); } + if(out != null){ out.close(); } + if(in != null){ in.close(); } + } + } + + @GetMapping("/Log") + public ModelAndView equipLog(@AuthenticationPrincipal UserInfo loginUser,EquipLog equipLog) { + ModelAndView mav = new ModelAndView("equip/equipLogList"); + equipLog.setDownOrganCdList(loginUser.getDownOrganCdList()); + equipLog.setQueryInfo(); + mav.addObject("logList", equipService.selectEquipLogList(equipLog)); + equipLog.setContentCnt(equipService.selectEquipLogListCnt(equipLog)); + equipLog.setPaginationInfo(); + mav.addObject("searchParams", equipLog); + + return mav; + } + + @GetMapping("/statusExcelDown") + public void statisticsExcelDown(Model model,HttpServletResponse response, Equip equip) { + String[] headers = { "rownum","equ_type", "item_value", "total", "cnt_bon", "cnt_center", "cnt_incheon", "cnt_pyeongtaek", "cnt_taean","cnt_boryeong","cnt_west","cnt_mokpo","cnt_buan", + "cnt_gunsan","cnt_yusu","cnt_wando","cnt_south","cnt_ulsan","cnt_busan","cnt_changwon","cnt_tongyong","cnt_sacheon","cnt_east","cnt_sokcho","cnt_donghe", + "cnt_ulgin","cnt_pohang","cnt_jeju","cnt_jejuseo","cnt_seoguipo"}; + String[] headerNames = { "", "", "", "", "", "중부", "", "","","","서해","","","","","","남해","","","","","","동해","","","","","제주","",""}; + String[] headerNames2 = { "연번", "분류", "세부분류", "총계", "본청", "청", "인천서", "평택서","태안서","보령서","청","목포서","부안서","군산서","여수서","완도서","청","울산서","부산서","창원서","통영서","서천서","청","속초서","동해서","울진서","포항서","청","제주서","서귀포서"}; + String[] columnType = { "int", "String", "String", "int", "int", "int", "int", "int","int","int","int","int","int","int","int","int","int","int","int","int", + "int","int","int","int","int","int","int","int","int","int"}; + String sheetName = "외사장비현황"; + String excelFileName = "외사장비현황"; + List equStatusList = equipService.selectEquipStatus(equip); + + try { + Utils.downEquipStatusExcel(equStatusList, response, headers, headerNames,headerNames2, columnType, sheetName, excelFileName); + } catch (IOException e) { + model.addAttribute("message", "엑셀다운로드 중 오류가 발생했습니다."); + } + } + + @GetMapping("/cellPhoneList") + public ModelAndView cellPhoneList(@AuthenticationPrincipal UserInfo loginUser,CellPhone cellPhone,HttpServletResponse response) { + ModelAndView mav = new ModelAndView("equip/cellPhoneList"); + cellPhone.setDownOrganCdList(loginUser.getDownOrganCdList()); + //엑셀다운 + if(cellPhone.getExcel() != null && cellPhone.getExcel().equals("Y")){ + String[] headers = { "phone_key", "sosok", "tel_no", "user_nm", "ext_mail", "webex_no", "katalk_id"}; + String[] headerNames = { "연번", "소속","전화번호", "사용자(관리자)", "등록 외부메일", "웹엑스 미팅번호", "카카오톡 ID"}; + String[] columnType = { "int", "String","String", "String", "String", "String", "String", "Stiring"}; + String sheetName = "업무용 휴대전화 현황"; + String excelFileName = "업무용 휴대전화 현황"; + List cellPhoneList= equipService.selectCellPhoneList(cellPhone); + + try { + Utils.cellPhoneListToExcel(cellPhoneList, response, headers, headerNames, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; + } + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/cellPhoneList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + cellPhone.setQueryInfo(); + mav.addObject("cellPhoneList", equipService.selectCellPhoneList(cellPhone)); + cellPhone.setContentCnt(equipService.selectCellPhoneListCnt(cellPhone)); + cellPhone.setPaginationInfo(); + mav.addObject("searchParams", cellPhone); + + return mav; + } + + @GetMapping("/cellPhoneEditModal") + public ModelAndView cellPhoneEditModal(@AuthenticationPrincipal UserInfo loginUser,CellPhone cellPhone) { + ModelAndView mav = new ModelAndView("equip/cellPhoneEditModal"); + if(cellPhone.getPhoneKey() != null) { + cellPhone = equipService.selectCellPhoneInfo(cellPhone.getPhoneKey()); + ParamMap param = new ParamMap(); + param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(cellPhone.getMgtOrgan())); + mav.addObject("managerList", userInfoService.selectManagerList(param)); + } + + if (cellPhone.getPhoneKey() == null) { + cellPhone.setWrtOrgan(loginUser.getOgCd()); + cellPhone.setWrtPart(loginUser.getOfcCd()); + cellPhone.setWrtUserSeq(loginUser.getUserSeq()); + cellPhone.setWrtNm(loginUser.getUserNm()); + } + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/cellPhoneList").get(0).getAccessAuth(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("userOrgan", loginUser.getOgCd()); + mav.addObject("accessAuth", accessAuth); + mav.addObject("info", cellPhone); + return mav; + } + + @GetMapping("/cellPhoneSelecBox") + public ModelAndView cellPhoneSelecBox(String ogCd) { + ModelAndView mav = new ModelAndView("equip/cellPhoneSelecBox"); + ParamMap param = new ParamMap(); + param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(ogCd)); + mav.addObject("managerList", userInfoService.selectManagerList(param)); + return mav; + } + + @PostMapping("/saveCellPhone") + public Integer saveCellPhone (@AuthenticationPrincipal UserInfo loginUser,CellPhone cellPhone){ + cellPhone.setWrtDt(LocalDateTime.now()); + return equipService.saveCellPhone(cellPhone); + } + + @PostMapping("/deleteCellPhone") + public void deleteCellPhone(@RequestBody List cellPhone){ + equipService.deleteCellPhone(cellPhone); + + } + + @GetMapping("/pvreUseList") + public ModelAndView pvreUseList(@AuthenticationPrincipal UserInfo loginUser,UseList useList,HttpServletResponse response) { + ModelAndView mav = new ModelAndView("equip/pvreUseList"); + useList.setDownOrganCdList(loginUser.getDownOrganCdList()); + useList.setUseType("PVRE"); + //엑셀다운 + if(useList.getExcel() != null && useList.getExcel().equals("Y")){ + String[] headers = { "use_no", "sosok", "use_dt", "detail_type_name", "people_cnt", "description", "wrt_dt"}; + String[] headerNames = { "연번", "경찰서","사용일시", "사용사유", "사용인원", "비고", "최종수정일"}; + String[] columnType = { "String", "String","String", "String", "int", "String", "String"}; + String sheetName = "휴대용 녹화장비 사용 대장"; + String excelFileName = "휴대용 녹화장비 사용 대장"; + List useExcelList= equipService.selectUseList(useList); + + try { + Utils.useListToExcel(useExcelList, response, headers, headerNames, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; + } + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/pvreUseList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + useList.setQueryInfo(); + mav.addObject("useList", equipService.selectUseList(useList)); + useList.setContentCnt(equipService.selectUseListCnt(useList)); + useList.setPaginationInfo(); + mav.addObject("organList", equipService.selectOrganList(useList)); + mav.addObject("searchParams", useList); + return mav; + } + + @GetMapping("/useEditModal") + public ModelAndView useEditModal(@AuthenticationPrincipal UserInfo loginUser,UseList useList) { + ModelAndView mav = new ModelAndView("equip/useEditModal"); + useList.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("organList", equipService.selectOrganList(useList)); + mav.addObject("userOrgan", loginUser.getOgCd()); + mav.addObject("useType", useList.getUseType()); + //메뉴권한 확인 + String accessAuth; + if(useList.getUseType().equals("PVRE")) { + accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/pvreUseList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + }else if(useList.getUseType().equals("QIR")) { + accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/qirUseList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + } + return mav; + } + + @PostMapping("/saveUse") + public void saveUse(@AuthenticationPrincipal UserInfo loginUser,UseList useList){ + useList.setWrtOrgan(loginUser.getOgCd()); + useList.setWrtPart(loginUser.getOfcCd()); + useList.setWrtUserSeq(loginUser.getUserSeq()); + useList.setWrtNm(loginUser.getUserId()); + useList.setWrtDt(LocalDateTime.now()); + equipService.saveUse(useList); + } + + @GetMapping("/useModifyModal") + public ModelAndView useModifyModal(@AuthenticationPrincipal UserInfo loginUser,UseList useList) { + ModelAndView mav = new ModelAndView("equip/useModifyModal"); + useList.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("organList", equipService.selectOrganList(useList)); + mav.addObject("info", equipService.selectUseInfo(useList)); + //메뉴권한 확인 + String accessAuth; + if(useList.getUseType().equals("PVRE")) { + accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/pvreUseList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + }else if(useList.getUseType().equals("QIR")) { + accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/qirUseList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + } + return mav; + } + + @PostMapping("/updateUse") + public UseList uadateUse(@AuthenticationPrincipal UserInfo loginUser,UseList useList){ + useList.setWrtOrgan(loginUser.getOgCd()); + useList.setWrtPart(loginUser.getOfcCd()); + useList.setWrtUserSeq(loginUser.getUserSeq()); + useList.setWrtNm(loginUser.getUserId()); + useList.setWrtDt(LocalDateTime.now()); + return equipService.updateUse(useList); + } + + @GetMapping("/useHistory") + public ModelAndView useHistory(@AuthenticationPrincipal UserInfo loginUser,UseList useList) { + ModelAndView mav = new ModelAndView("equip/useHistory"); + mav.addObject("infoList", equipService.selectUseInfoList(useList)); + return mav; + } + + @GetMapping("/HistoryView") + @ResponseBody + public UseList HistoryView(UseList useList){ + return equipService.selectUseInfo(useList); + } + + @PostMapping("/useDelete") + public void useDelete(@RequestBody List useList){ + equipService.useDelete(useList); + } + + @GetMapping("/qirUseList") + public ModelAndView qirUseList(@AuthenticationPrincipal UserInfo loginUser,UseList useList,HttpServletResponse response) { + ModelAndView mav = new ModelAndView("equip/qirUseList"); + useList.setDownOrganCdList(loginUser.getDownOrganCdList()); + useList.setUseType("QIR"); + //엑셀다운 + if(useList.getExcel() != null && useList.getExcel().equals("Y")){ + String[] headers = { "use_no", "sosok", "use_dt", "detail_type_name", "people_cnt", "description", "wrt_dt"}; + String[] headerNames = { "연번", "경찰서","사용일시", "사용사유", "사용인원", "비고", "최종수정일"}; + String[] columnType = { "String", "String","String", "String", "int", "String", "String"}; + String sheetName = "방역조사실 사용대장"; + String excelFileName = "방역조사실 사용대장"; + List useExcelList= equipService.selectUseList(useList); + + try { + Utils.useListToExcel(useExcelList, response, headers, headerNames, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; + } + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/qirUseList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + useList.setQueryInfo(); + mav.addObject("useList", equipService.selectUseList(useList)); + useList.setContentCnt(equipService.selectUseListCnt(useList)); + useList.setPaginationInfo(); + mav.addObject("searchParams", useList); + mav.addObject("organList", equipService.selectOrganList(useList)); + return mav; + } + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java b/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java new file mode 100644 index 0000000..26c2178 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java @@ -0,0 +1,53 @@ +package com.dbnt.faisp.equip.mapper; + +import com.dbnt.faisp.equip.model.CellPhone; +import com.dbnt.faisp.equip.model.Equip; +import com.dbnt.faisp.equip.model.EquipLog; +import com.dbnt.faisp.equip.model.UseList; +import com.dbnt.faisp.util.ParamMap; + +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface EquipMapper { + + List selectEquipStatus(Equip equip); + + List selectEquipList(Equip equip); + + Integer selectEquipListCnt(Equip equip); + + Equip selectEquipInfo(Equip equip); + + ParamMap selectEduType(Equip equip); + + Equip selectHistoryDetail(Equip equip); + + List selectEquipLogList(EquipLog equipLog); + + Integer selectEquipLogListCnt(EquipLog equipLog); + + String selectEquipFirstId(Equip equip); + + List selectCellPhoneList(CellPhone cellPhone); + + Integer selectCellPhoneListCnt(CellPhone cellPhone); + + List selectOrganList(UseList useList); + + UseList selectUseNoCnt(UseList useList); + + Integer selectLastUseNo(UseList useList); + + List selectUseList(UseList useList); + + Integer selectUseListCnt(UseList useList); + + UseList selectUseInfo(UseList useList); + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/model/CellPhone.java b/src/main/java/com/dbnt/faisp/equip/model/CellPhone.java new file mode 100644 index 0000000..91718c9 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/model/CellPhone.java @@ -0,0 +1,97 @@ +package com.dbnt.faisp.equip.model; + +import com.dbnt.faisp.config.BaseModel; + + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + + +import javax.persistence.*; + + +import java.time.LocalDateTime; + + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "cellphone_mgt") +public class CellPhone extends BaseModel{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "phone_key") + private Integer phoneKey; + @Column(name = "mgt_organ") + private String mgtOrgan; + @Column(name = "tel_no") + private String telNo; + @Column(name = "p_user_seq") + private Integer pUserSeq; + @Column(name = "ext_mail") + private String extMail; + @Column(name = "katalk_id") + private String katalkId; + @Column(name = "webex_no") + private String webexNo; + @Column(name = "description") + private String description; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; + + @Transient + private String userNm; + + @Transient + private String sosok; + + @Transient + private String excel; + +@Override +public String toString() { + return "CellPhone [phoneKey=" + phoneKey + ", mgtOrgan=" + mgtOrgan + ", telNo=" + telNo + ", pUserSeq=" + pUserSeq + + ", extMail=" + extMail + ", katalkId=" + katalkId + ", webexNo=" + webexNo + ", description=" + + description + ", wrtOrgan=" + wrtOrgan + ", wrtPart=" + wrtPart + ", wrtUserSeq=" + wrtUserSeq + + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + ", userNm=" + userNm + ", sosok=" + sosok + "]"; +} + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/model/Equip.java b/src/main/java/com/dbnt/faisp/equip/model/Equip.java new file mode 100644 index 0000000..966c0cc --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/model/Equip.java @@ -0,0 +1,118 @@ +package com.dbnt.faisp.equip.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(Equip.EquipId.class) +@Table(name = "equ_mgt") +public class Equip extends BaseModel implements Serializable{ + @Id + @Column(name = "equ_key") + private Integer equKey; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "mgt_organ") + private String mgtOrgan; + @Column(name = "equ_type") + private String equType; + @Column(name = "detail_type") + private String detailType; + @Column(name = "stored_year") + private String storedYear; + @Column(name = "item_qty") + private Integer itemQty; + @Column(name = "item_condition") + private String itemCondition; + @Column(name = "note") + private String note; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; + + @Transient + private String sosok; + @Transient + private String detailSosok; + @Transient + private String detailName; + @Transient + private String origNm; + @Transient + private String convNm; + @Transient + private String filePath; + @Transient + private Integer deleteFileKey; + @Transient + private Integer deleteFileVnum; + @Transient + private String noUpdateImg; + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class EquipId implements Serializable { + private Integer equKey; + private Integer versionNo; +} + +@Override +public String toString() { + return "Equip [equKey=" + equKey + ", versionNo=" + versionNo + ", mgtOrgan=" + mgtOrgan + ", equType=" + equType + + ", detailType=" + detailType + ", storedYear=" + storedYear + ", itemQty=" + itemQty + ", itemCondition=" + + itemCondition + ", note=" + note + ", wrtOrgan=" + wrtOrgan + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + + ", sosok=" + sosok + ", detailSosok=" + detailSosok + ", detailName=" + detailName + ", origNm=" + origNm + + ", convNm=" + convNm + ", filePath=" + filePath + ", deleteFileKey=" + deleteFileKey + ", deleteFileVnum=" + + deleteFileVnum + ", noUpdateImg=" + noUpdateImg + "]"; +} + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/model/EquipFile.java b/src/main/java/com/dbnt/faisp/equip/model/EquipFile.java new file mode 100644 index 0000000..9369070 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/model/EquipFile.java @@ -0,0 +1,78 @@ +package com.dbnt.faisp.equip.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(EquipFile.EquipFileId.class) +@Table(name = "equ_file") +public class EquipFile extends BaseModel implements Serializable{ + @Id + @Column(name = "equ_key") + private Integer equKey; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "file_path") + private String filePath; + + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class EquipFileId implements Serializable { + private Integer equKey; + private Integer versionNo; +} + + + +@Override +public String toString() { + return "EquipFile [equKey=" + equKey + ", versionNo=" + versionNo + ", origNm=" + origNm + ", convNm=" + convNm + + ", fileExtn=" + fileExtn + ", fileSize=" + fileSize + ", filePath=" + filePath + "]"; +} + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/model/EquipLog.java b/src/main/java/com/dbnt/faisp/equip/model/EquipLog.java new file mode 100644 index 0000000..435c1f2 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/model/EquipLog.java @@ -0,0 +1,56 @@ +package com.dbnt.faisp.equip.model; + + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.time.LocalDateTime; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "equ_Log") +public class EquipLog extends BaseModel{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "el_seq") + private Integer userSeq; + @Column(name = "equ_type") + private String equType; + @Column(name = "detail_type") + private String detailType; + @Column(name = "el_contents") + private String elContents; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; + + @Transient + private String sosok; + @Transient + private String detailSosok; + @Transient + private String detailName; + +@Override +public String toString() { + return "EquipLog [userSeq=" + userSeq + ", equType=" + equType + ", detailType=" + detailType + ", elContents=" + + elContents + ", wrtNm=" + wrtNm + ", wrtOrgan=" + wrtOrgan + ", wrtDt=" + wrtDt + ", sosok=" + sosok + + ", detailSosok=" + detailSosok + ", detailName=" + detailName + "]"; +} + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/model/UseList.java b/src/main/java/com/dbnt/faisp/equip/model/UseList.java new file mode 100644 index 0000000..d24f3d7 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/model/UseList.java @@ -0,0 +1,123 @@ +package com.dbnt.faisp.equip.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(UseList.UseListId.class) +@Table(name = "use_list") +public class UseList extends BaseModel implements Serializable{ + @Id + @Column(name = "mgt_organ") + private String mgtOrgan; + @Id + @Column(name = "use_no") + private String useNo; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Id + @Column(name = "use_type") + private String useType; + @Column(name = "use_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate useDt; + @Column(name = "detail_type") + private String detailType; + @Column(name = "detail_self") + private String detailSelf; + @Column(name = "people_cnt") + private Integer peopleCnt; + @Column(name = "description") + private String description; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_grd") + private String wrtUserGrd; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Transient + private String excel; + + @Transient + private String sosok; + + @Transient + private String year; + @Transient + private String detailTypeName; + + +@Override +public String toString() { + return "UseList [mgtOrgan=" + mgtOrgan + ", useNo=" + useNo + ", versionNo=" + versionNo + ", useType=" + useType + + ", useDt=" + useDt + ", detailType=" + detailType + ", detailSelf=" + detailSelf + ", peopleCnt=" + + peopleCnt + ", description=" + description + ", wrtOrgan=" + wrtOrgan + ", wrtPart=" + wrtPart + + ", wrtUserGrd=" + wrtUserGrd + ", wrtUserSeq=" + wrtUserSeq + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + + ", excel=" + excel + ", sosok=" + sosok + ", year=" + year + ", detailTypeName=" + detailTypeName + "]"; +} + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class UseListId implements Serializable { + private String mgtOrgan; + private String useNo; + private Integer versionNo; + private String useType; +} + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/repository/CellPhoneRepository.java b/src/main/java/com/dbnt/faisp/equip/repository/CellPhoneRepository.java new file mode 100644 index 0000000..c7c7c6d --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/repository/CellPhoneRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.equip.repository; + +import com.dbnt.faisp.equip.model.CellPhone; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface CellPhoneRepository extends JpaRepository { + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/repository/EquipFileRepository.java b/src/main/java/com/dbnt/faisp/equip/repository/EquipFileRepository.java new file mode 100644 index 0000000..78c0e4c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/repository/EquipFileRepository.java @@ -0,0 +1,16 @@ +package com.dbnt.faisp.equip.repository; + +import com.dbnt.faisp.equip.model.EquipFile; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface EquipFileRepository extends JpaRepository { + + void deleteByEquKey(Integer equKey); + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/repository/EquipLogRepository.java b/src/main/java/com/dbnt/faisp/equip/repository/EquipLogRepository.java new file mode 100644 index 0000000..b54b44c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/repository/EquipLogRepository.java @@ -0,0 +1,15 @@ +package com.dbnt.faisp.equip.repository; + +import com.dbnt.faisp.equip.model.EquipLog; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface EquipLogRepository extends JpaRepository { + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/repository/EquipRepository.java b/src/main/java/com/dbnt/faisp/equip/repository/EquipRepository.java new file mode 100644 index 0000000..b2e456a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/repository/EquipRepository.java @@ -0,0 +1,24 @@ +package com.dbnt.faisp.equip.repository; + +import com.dbnt.faisp.equip.model.Equip; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface EquipRepository extends JpaRepository { + + Equip findFirstByOrderByEquKeyDesc(); + + List findByEquKeyOrderByWrtDtDesc(Integer equKey); + + void deleteByEquKey(Integer equKey); + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/repository/UseListRepository.java b/src/main/java/com/dbnt/faisp/equip/repository/UseListRepository.java new file mode 100644 index 0000000..42211e2 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/repository/UseListRepository.java @@ -0,0 +1,20 @@ +package com.dbnt.faisp.equip.repository; + +import com.dbnt.faisp.equip.model.UseList; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface UseListRepository extends JpaRepository { + + List findByMgtOrganAndUseNoAndUseTypeOrderByVersionNoDesc(String mgtOrgan, String useNo, String useType); + + void deleteByMgtOrganAndUseNoAndUseType(String mgtOrgan, String useNo, String useType); + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/service/EquipService.java b/src/main/java/com/dbnt/faisp/equip/service/EquipService.java new file mode 100644 index 0000000..a6024ca --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/service/EquipService.java @@ -0,0 +1,396 @@ +package com.dbnt.faisp.equip.service; + + +import com.dbnt.faisp.equip.mapper.EquipMapper; +import com.dbnt.faisp.equip.model.CellPhone; +import com.dbnt.faisp.equip.model.Equip; +import com.dbnt.faisp.equip.model.Equip.EquipId; +import com.dbnt.faisp.equip.model.EquipFile; +import com.dbnt.faisp.equip.model.EquipFile.EquipFileId; +import com.dbnt.faisp.equip.model.EquipLog; +import com.dbnt.faisp.equip.model.UseList; +import com.dbnt.faisp.equip.model.UseList.UseListId; +import com.dbnt.faisp.equip.repository.CellPhoneRepository; +import com.dbnt.faisp.equip.repository.EquipFileRepository; +import com.dbnt.faisp.equip.repository.EquipLogRepository; +import com.dbnt.faisp.equip.repository.EquipRepository; +import com.dbnt.faisp.equip.repository.UseListRepository; +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.util.ParamMap; +import com.dbnt.faisp.util.Utils; + +import lombok.RequiredArgsConstructor; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.*; + +@Service +@RequiredArgsConstructor +public class EquipService { + @Value("${spring.servlet.multipart.location}") + protected String locationPath; + + private final EquipRepository equipRepository; + private final EquipFileRepository equipFileRepository; + private final EquipLogRepository equipLogRepository; + private final CellPhoneRepository cellPhoneRepository; + private final UseListRepository useListRepository; + private final EquipMapper equipMapper; + + SimpleDateFormat Date = new SimpleDateFormat("yyyy"); + String year = Date.format(new Date()); + + + @Transactional + public void saveEquip(Equip equip, MultipartHttpServletRequest request) { + Equip dbEquip = equipRepository.findFirstByOrderByEquKeyDesc(); + try { + if(dbEquip == null) { + equip.setEquKey(1); + equip.setVersionNo(1); + equipRepository.save(equip); + } else { + equip.setEquKey(dbEquip.getEquKey()+1); + equip.setVersionNo(1); + equipRepository.save(equip); + } + saveFile(equip,request); + EquipLog equLog = new EquipLog(); + equLog.setEquType(equip.getEquType()); + equLog.setDetailType(equip.getDetailType()); + equLog.setElContents("입력"); + equLog.setWrtNm(equip.getWrtNm()); + equLog.setWrtOrgan(equip.getWrtOrgan()); + equLog.setWrtDt(equip.getWrtDt()); + equipLogRepository.save(equLog); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void saveFile(Equip equip, MultipartHttpServletRequest mRequest) throws Exception { + try { + String path = locationPath; + String FileSize; + File dir = new File(path); + if(!dir.exists()) dir.mkdir(); + //파일등록 + List mFiles = mRequest.getFiles("file"); + for(int i = 0; i < mFiles.size(); i++) { + MultipartFile mFile = mFiles.get(i); + FileSize = calculationSize(mFile.getSize()); + if(!"".equals(mFile.getOriginalFilename())){ + String fileName = mFile.getOriginalFilename(); + if(fileName.contains("\\")){ + String notSecuredFileName = fileName.substring(fileName.lastIndexOf("\\") +1); + fileName = ("".equals(notSecuredFileName) || null == notSecuredFileName) ? fileName : notSecuredFileName; + }; + + String fileExt = Utils.getFileExtention(fileName); + String saveName = Utils.generationSaveName() + "." + fileExt; + FileCopyUtils.copy(mFile.getBytes(), new File(path, saveName)); + + EquipFile equipFile = new EquipFile(); + equipFile.setEquKey(equip.getEquKey()); + equipFile.setVersionNo(equip.getVersionNo()); + equipFile.setOrigNm(fileName); + equipFile.setConvNm(saveName); + equipFile.setFileExtn(fileExt); + equipFile.setFilePath(path); + equipFile.setFileSize(FileSize); + + equipFileRepository.save(equipFile); + } else { + EquipFile equipFile = new EquipFile(); + equipFile.setEquKey(equip.getEquKey()); + equipFile.setVersionNo(equip.getVersionNo()); + equipFileRepository.save(equipFile); + } + } + + } catch (Exception e) { + throw e; + } + } + + + private String calculationSize(double fileSize){ + String[] units = {"bytes", "KB", "MB", "GB", "TB", "PB"}; + double unitSelector = Math.floor(Math.log(fileSize)/Math.log(1024)); + if(fileSize>0){ + return Math.round((fileSize/Math.pow(1024, unitSelector))*100)/100d+" "+units[(int)unitSelector]; + }else{ + return ""; + } + } + + public List selectEquipStatus(Equip equip) { + return equipMapper.selectEquipStatus(equip); + } + + public List selectEquipList(Equip equip) { + return equipMapper.selectEquipList(equip); + } + + public Integer selectEquipListCnt(Equip equip) { + return equipMapper.selectEquipListCnt(equip); + } + + public Equip selectEquipInfo(Equip equip) { + return equipMapper.selectEquipInfo(equip); + } + + @Transactional + public int updateEquip(Equip equip, MultipartHttpServletRequest request) { + try { + Equip dbEquip = equipRepository.findById(new EquipId(equip.getEquKey(), equip.getVersionNo())).orElse(null); + Equip equipTmp = new Equip(); + equipTmp.setEquKey(dbEquip.getEquKey()); + equipTmp.setVersionNo(dbEquip.getVersionNo()+1); + equipTmp.setMgtOrgan(equip.getMgtOrgan()); + equipTmp.setEquType(equip.getEquType()); + equipTmp.setDetailType(equip.getDetailType()); + equipTmp.setStoredYear(equip.getStoredYear()); + equipTmp.setItemQty(equip.getItemQty()); + equipTmp.setItemCondition(equip.getItemCondition()); + equipTmp.setNote(equip.getNote()); + equipTmp.setWrtOrgan(equip.getWrtOrgan()); + equipTmp.setWrtNm(equip.getWrtNm()); + equipTmp.setWrtDt(equip.getWrtDt()); + equipRepository.save(equipTmp); + updateFile(equip,equipTmp,request); + EquipLog equLog = new EquipLog(); + equLog.setEquType(equip.getEquType()); + equLog.setDetailType(equip.getDetailType()); + equLog.setElContents("수정"); + equLog.setWrtNm(equip.getWrtNm()); + equLog.setWrtOrgan(equip.getWrtOrgan()); + equLog.setWrtDt(equip.getWrtDt()); + equipLogRepository.save(equLog); + } catch (Exception e) { + e.printStackTrace(); + } + return equip.getEquKey(); + } + + public void updateFile(Equip equip,Equip equipTmp, MultipartHttpServletRequest mRequest) throws Exception { + try { + String path = locationPath; + String FileSize; + File dir = new File(path); + if(!dir.exists()) dir.mkdir(); + + //이미지 삭제했을경우 + if(equip.getDeleteFileKey() != null) { + EquipFile equFile = new EquipFile(); + equFile.setEquKey(equip.getDeleteFileKey()); + equFile.setVersionNo(equip.getDeleteFileVnum()); + EquipFile dbEquFile = equipFileRepository.findById(new EquipFileId(equFile.getEquKey(), equFile.getVersionNo())).orElse(null); + if(dbEquFile != null) { + File file = new File(dbEquFile.getFilePath(), dbEquFile.getConvNm()); + + if(file.exists()) { + + file.delete(); + } + } + } + //파일등록 + List mFiles = mRequest.getFiles("file"); + for(int i = 0; i < mFiles.size(); i++) { + MultipartFile mFile = mFiles.get(i); + FileSize = calculationSize(mFile.getSize()); + if(!"".equals(mFile.getOriginalFilename())){ + String fileName = mFile.getOriginalFilename(); + if(fileName.contains("\\")){ + String notSecuredFileName = fileName.substring(fileName.lastIndexOf("\\") +1); + fileName = ("".equals(notSecuredFileName) || null == notSecuredFileName) ? fileName : notSecuredFileName; + }; + + String fileExt = Utils.getFileExtention(fileName); + String saveName = Utils.generationSaveName() + "." + fileExt; + FileCopyUtils.copy(mFile.getBytes(), new File(path, saveName)); + + EquipFile equipFile = new EquipFile(); + equipFile.setEquKey(equipTmp.getEquKey()); + equipFile.setVersionNo(equipTmp.getVersionNo()); + equipFile.setOrigNm(fileName); + equipFile.setConvNm(saveName); + equipFile.setFileExtn(fileExt); + equipFile.setFilePath(path); + equipFile.setFileSize(FileSize); + + equipFileRepository.save(equipFile); + } else if(equip.getNoUpdateImg() != null) { + EquipFile equipFile = new EquipFile(); + equipFile.setEquKey(equipTmp.getEquKey()); + equipFile.setVersionNo(equipTmp.getVersionNo()); + EquipFile dbEquFile = equipFileRepository.findById(new EquipFileId(equip.getEquKey(), equip.getVersionNo())).orElse(null); + equipFile.setOrigNm(dbEquFile.getOrigNm()); + equipFile.setConvNm(dbEquFile.getConvNm()); + equipFile.setFileExtn(dbEquFile.getFileExtn()); + equipFile.setFilePath(dbEquFile.getFilePath()); + equipFile.setFileSize(dbEquFile.getFileSize()); + equipFileRepository.save(equipFile); + } else { + EquipFile equipFile = new EquipFile(); + equipFile.setEquKey(equipTmp.getEquKey()); + equipFile.setVersionNo(equipTmp.getVersionNo()); + equipFileRepository.save(equipFile); + } + } + } catch (Exception e) { + throw e; + } + } + + public ParamMap selectEduType(Equip equip) { + return equipMapper.selectEduType(equip); + } + + public List selectHistoryView(Equip equip) { + return equipRepository.findByEquKeyOrderByWrtDtDesc(equip.getEquKey()); + } + + public Equip selectHistoryDetail(Equip equip) { + return equipMapper.selectHistoryDetail(equip); + } + + @Transactional + public void equipDelete(List equip,UserInfo loginUser) { + for(Equip equ: equip) { + //파일삭제 + Equip dbEquip = equipMapper.selectEquipInfo(equ); + if(dbEquip.getOrigNm() != null) { + File file = new File(dbEquip.getFilePath(), dbEquip.getConvNm()); + + if(file.exists()) { + + file.delete(); + } + } + equipRepository.deleteByEquKey(equ.getEquKey()); + equipFileRepository.deleteByEquKey(equ.getEquKey()); + EquipLog equLog = new EquipLog(); + equLog.setEquType(dbEquip.getEquType()); + equLog.setDetailType(dbEquip.getDetailType()); + equLog.setElContents("삭제"); + equLog.setWrtNm(loginUser.getUserId()); + equLog.setWrtOrgan(loginUser.getOgCd()); + equLog.setWrtDt(LocalDateTime.now()); + equipLogRepository.save(equLog); + } + + } + + public List selectEquipLogList(EquipLog equipLog) { + return equipMapper.selectEquipLogList(equipLog); + } + + public Integer selectEquipLogListCnt(EquipLog equipLog) { + return equipMapper.selectEquipLogListCnt(equipLog); + } + + public String selectEquipFirstId(Equip equip) { + return equipMapper.selectEquipFirstId(equip); + } + + @Transactional + public Integer saveCellPhone(CellPhone cellPhone) { + return cellPhoneRepository.save(cellPhone).getPhoneKey(); + } + + public List selectCellPhoneList(CellPhone cellPhone) { + return equipMapper.selectCellPhoneList(cellPhone); + } + + public Integer selectCellPhoneListCnt(CellPhone cellPhone) { + return equipMapper.selectCellPhoneListCnt(cellPhone); + } + + public CellPhone selectCellPhoneInfo(Integer phoneKey) { + return cellPhoneRepository.findById(phoneKey).orElse(null); + } + + @Transactional + public void deleteCellPhone(List cellPhone) { + cellPhoneRepository.deleteAll(cellPhone); + } + + public List selectOrganList(UseList useList) { + return equipMapper.selectOrganList(useList); + } + + @Transactional + public void saveUse(UseList useList) { + useList.setYear(year); + Integer useNo = equipMapper.selectLastUseNo(useList); + if(useNo == null) { + useList.setUseNo(year+"-001"); + useList.setVersionNo(1); + } else { + useList.setUseNo(year+"-"+String.format("%03d", useNo+1)); + useList.setVersionNo(1); + } + useListRepository.save(useList); + + } + + public List selectUseList(UseList useList) { + return equipMapper.selectUseList(useList); + } + + public Integer selectUseListCnt(UseList useList) { + return equipMapper.selectUseListCnt(useList); + } + + public UseList selectUseInfo(UseList useList) { + return equipMapper.selectUseInfo(useList); + } + + @Transactional + public UseList updateUse(UseList useList) { + UseList dbUseList = useListRepository + .findById(new UseListId(useList.getMgtOrgan(),useList.getUseNo(),useList.getVersionNo(),useList.getUseType())).orElse(null); + UseList useTmp = new UseList(); + useTmp.setMgtOrgan(dbUseList.getMgtOrgan()); + useTmp.setUseNo(dbUseList.getUseNo()); + useTmp.setVersionNo(dbUseList.getVersionNo()+1); + useTmp.setUseType(dbUseList.getUseType()); + useTmp.setUseDt(useList.getUseDt()); + useTmp.setDetailType(useList.getDetailType()); + useTmp.setDetailSelf(useList.getDetailSelf()); + useTmp.setPeopleCnt(useList.getPeopleCnt()); + useTmp.setDescription(useList.getDescription()); + useTmp.setWrtOrgan(useList.getWrtOrgan()); + useTmp.setWrtPart(useList.getWrtPart()); + useTmp.setWrtUserSeq(useList.getWrtUserSeq()); + useTmp.setWrtNm(useList.getWrtNm()); + useTmp.setWrtDt(useList.getWrtDt()); + return useListRepository.save(useTmp); + + } + + public List selectUseInfoList(UseList useList) { + return useListRepository.findByMgtOrganAndUseNoAndUseTypeOrderByVersionNoDesc(useList.getMgtOrgan(),useList.getUseNo(),useList.getUseType()); + } + + @Transactional + public void useDelete(List useList) { + for(UseList use:useList) { + useListRepository.deleteByMgtOrganAndUseNoAndUseType(use.getMgtOrgan(),use.getUseNo(),use.getUseType()); + } + } + + + +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/FaRptController.java b/src/main/java/com/dbnt/faisp/faRpt/FaRptController.java new file mode 100644 index 0000000..4ca0c3a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/FaRptController.java @@ -0,0 +1,97 @@ +package com.dbnt.faisp.faRpt; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.faRpt.model.FaRptBoard; +import com.dbnt.faisp.faRpt.service.FaRptService; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/faRpt") +public class FaRptController { + private final FaRptService faRptService; + private final AuthMgtService authMgtService; + + @GetMapping("/faRptBoard") + public ModelAndView faRptBoard(@AuthenticationPrincipal UserInfo loginUser, FaRptBoard faRptBoard){ + ModelAndView mav; + if(faRptBoard.getDashboardFlag()){ + mav = new ModelAndView("/faRpt/faRptDashboard"); + faRptBoard.setRowCnt(5); + }else{ + mav = new ModelAndView("/faRpt/faRptBoard"); + } + if(faRptBoard.getActiveTab()==null){ + faRptBoard.setActiveTab("send"); + } + mav.addObject("searchUrl", "/faRpt/faRptBoard"); + String accessAuth = authMgtService.selectAccessConfigList + (loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + + if(faRptBoard.getActiveTab().equals("send")){ + faRptBoard.setWrtUserSeq(loginUser.getUserSeq()); + }else if(faRptBoard.getActiveTab().equals("receive")){ + faRptBoard.setReceiveUserSeq(loginUser.getUserSeq()); + }else if(faRptBoard.getActiveTab().equals("all") && accessAuth.equals("ACC003")){ + faRptBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + }else if(faRptBoard.getActiveTab().equals("all")){ + faRptBoard.setActiveTab("send"); + faRptBoard.setWrtUserSeq(loginUser.getUserSeq()); + } + + faRptBoard.setQueryInfo(); + mav.addObject("faRptList", faRptService.selectFaRptList(faRptBoard)); + faRptBoard.setContentCnt(faRptService.selectFaRptCnt(faRptBoard)); + faRptBoard.setPaginationInfo(); + mav.addObject("searchParams", faRptBoard); + return mav; + } + + @GetMapping("/faRptEditModal") + public ModelAndView faRptEditModal(@AuthenticationPrincipal UserInfo loginUser, FaRptBoard faRptBoard){ + ModelAndView mav = new ModelAndView("faRpt/faRptEditModal"); + if(faRptBoard.getFaRptKey()!=null){ + faRptBoard = faRptService.selectFaRptBoard(faRptBoard.getFaRptKey()); + }else{ + faRptBoard.setWrtOrgan(loginUser.getOgCd()); + faRptBoard.setWrtPart(loginUser.getOfcCd()); + faRptBoard.setWrtUserSeq(loginUser.getUserSeq()); + faRptBoard.setWrtUserGrd(loginUser.getTitleCd()); + faRptBoard.setWrtUserNm(loginUser.getUserNm()); + faRptBoard.setWrtDt(LocalDateTime.now()); + } + mav.addObject("faRpt", faRptBoard); + return mav; + } + + @GetMapping("/faRptViewModal") + public ModelAndView faRptViewModal(@AuthenticationPrincipal UserInfo loginUser, FaRptBoard faRptBoard){ + ModelAndView mav = new ModelAndView("faRpt/faRptViewModal"); + faRptBoard = faRptService.selectFaRptBoard(faRptBoard.getFaRptKey()); + mav.addObject("faRpt", faRptBoard); + mav.addObject("userSeq",loginUser.getUserSeq()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList + (loginUser.getUserSeq(), "/faRpt/faRptBoard").get(0).getAccessAuth()); + return mav; + } + + @PostMapping("/savePlan") + public Integer saveFaRpt(FaRptBoard faRptBoard, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List deleteFileSeq){ + faRptBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + return faRptService.saveFaRptBoard(faRptBoard, deleteFileSeq); + } +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/mapper/FaRptMapper.java b/src/main/java/com/dbnt/faisp/faRpt/mapper/FaRptMapper.java new file mode 100644 index 0000000..5f5b300 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/mapper/FaRptMapper.java @@ -0,0 +1,15 @@ +package com.dbnt.faisp.faRpt.mapper; + +import com.dbnt.faisp.faRpt.model.FaRptBoard; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + + +@Mapper +public interface FaRptMapper { + + List selectFaRptList(FaRptBoard faRptBoard); + + Integer selectFaRptCnt(FaRptBoard faRptBoard); +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/model/FaRptBoard.java b/src/main/java/com/dbnt/faisp/faRpt/model/FaRptBoard.java new file mode 100644 index 0000000..192d33d --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/model/FaRptBoard.java @@ -0,0 +1,66 @@ +package com.dbnt.faisp.faRpt.model; + +import com.dbnt.faisp.config.BaseModel; +import com.dbnt.faisp.publicBoard.model.PublicComment; +import com.dbnt.faisp.publicBoard.model.PublicFile; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "fa_rpt_board") +public class FaRptBoard extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "fa_rpt_key") + private Integer faRptKey; + @Column(name = "fa_rpt_type") + private String faRptType; + @Column(name = "title") + private String title; + @Column(name = "content") + private String content; + @Column(name = "status") + private String status; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_user_grd") + private String wrtUserGrd; + @Column(name = "wrt_user_nm") + private String wrtUserNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + @Column(name = "ref_key") + private Integer refKey; + + @Transient + private Integer receiveUserSeq; + @Transient + private String activeTab; + @Transient + private Integer fileCnt; + @Transient + private List fileList; + @Transient + private List readUserList; + @Transient + private List multipartFileList; +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/model/FaRptFile.java b/src/main/java/com/dbnt/faisp/faRpt/model/FaRptFile.java new file mode 100644 index 0000000..6b5138b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/model/FaRptFile.java @@ -0,0 +1,47 @@ +package com.dbnt.faisp.faRpt.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "fa_rpt_file") +@IdClass(FaRptFile.FaRptFileId.class) +public class FaRptFile extends FileInfo { + @Id + @Column(name = "fa_rpt_key") + private Integer faRptKey; + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "save_path") + private String savePath; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class FaRptFileId implements Serializable { + private Integer faRptKey; + private Integer fileSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/model/FaRptReadUser.java b/src/main/java/com/dbnt/faisp/faRpt/model/FaRptReadUser.java new file mode 100644 index 0000000..b87ad1d --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/model/FaRptReadUser.java @@ -0,0 +1,47 @@ +package com.dbnt.faisp.faRpt.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "fa_rpt_read_user") +@IdClass(FaRptReadUser.FaRptReadUserId.class) +public class FaRptReadUser extends FileInfo { + @Id + @Column(name = "fa_rpt_key") + private Integer faRptKey; + @Id + @Column(name = "user_seq") + private Integer userSeq; + @Column(name = "read_yn") + private String readYn; + @Column(name = "og_cd") + private String ogCd; + @Column(name = "ofc_cd") + private String ofcCd; + @Column(name = "title_cd") + private String titleCd; + @Column(name = "user_nm") + private String userNm; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class FaRptReadUserId implements Serializable { + private Integer faRptKey; + private Integer userSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptBoardRepository.java b/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptBoardRepository.java new file mode 100644 index 0000000..1a62339 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptBoardRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.faRpt.repository; + +import com.dbnt.faisp.faRpt.model.FaRptBoard; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface FaRptBoardRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptFileRepository.java b/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptFileRepository.java new file mode 100644 index 0000000..61505fa --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptFileRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.faRpt.repository; + +import com.dbnt.faisp.faRpt.model.FaRptFile; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface FaRptFileRepository extends JpaRepository { + List findByFaRptKey(Integer faRptKey); + Optional findTopByFaRptKeyOrderByFileSeq(Integer faRptKey); + +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptReadUserRepository.java b/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptReadUserRepository.java new file mode 100644 index 0000000..d9a1d42 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/repository/FaRptReadUserRepository.java @@ -0,0 +1,10 @@ +package com.dbnt.faisp.faRpt.repository; + +import com.dbnt.faisp.faRpt.model.FaRptReadUser; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface FaRptReadUserRepository extends JpaRepository { + List findByFaRptKey(Integer faRptKey); +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/service/FaRptService.java b/src/main/java/com/dbnt/faisp/faRpt/service/FaRptService.java new file mode 100644 index 0000000..0f307cf --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/service/FaRptService.java @@ -0,0 +1,51 @@ +package com.dbnt.faisp.faRpt.service; + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; +import com.dbnt.faisp.faRpt.mapper.FaRptMapper; +import com.dbnt.faisp.faRpt.model.FaRptBoard; +import com.dbnt.faisp.faRpt.model.FaRptReadUser; +import com.dbnt.faisp.faRpt.repository.FaRptBoardRepository; +import com.dbnt.faisp.faRpt.repository.FaRptFileRepository; +import com.dbnt.faisp.faRpt.repository.FaRptReadUserRepository; +import com.dbnt.faisp.publicBoard.model.PublicBoard; +import com.dbnt.faisp.publicBoard.model.PublicComment; +import com.dbnt.faisp.publicBoard.model.PublicFile; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.List; +import java.util.UUID; + + +@Service +@RequiredArgsConstructor +public class FaRptService extends BaseService { + private final FaRptBoardRepository faRptBoardRepository; + private final FaRptFileRepository faRptFileRepository; + private final FaRptReadUserRepository faRptReadUserRepository; + private final FaRptMapper faRptMapper; + + + public List selectFaRptList(FaRptBoard faRptBoard) { + return faRptMapper.selectFaRptList(faRptBoard); + } + + public Integer selectFaRptCnt(FaRptBoard faRptBoard) { + return faRptMapper.selectFaRptCnt(faRptBoard); + } + + public Integer saveFaRptBoard(FaRptBoard faRptBoard, List deleteFileSeq) { + return 0; + } + + public FaRptBoard selectFaRptBoard(Integer faRptKey) { + FaRptBoard faRptBoard = faRptBoardRepository.findById(faRptKey).orElse(null); + faRptBoard.setFileList(faRptFileRepository.findByFaRptKey(faRptKey)); + faRptBoard.setReadUserList(faRptReadUserRepository.findByFaRptKey(faRptKey)); + return faRptBoard; + } +} \ No newline at end of file diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java new file mode 100644 index 0000000..2759466 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java @@ -0,0 +1,116 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.codeMgt.model.CodeMgt; +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.service.InternationalCrimeArrestService; +import com.dbnt.faisp.organMgt.model.OrganConfig; +import com.dbnt.faisp.organMgt.service.OrganConfigService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/faStatistics") +public class InternationalCrimeArrestController { + + private final AuthMgtService authMgtService; + private final InternationalCrimeArrestService internationalCrimeArrestService; + private final CodeMgtService codeMgtService; + private final OrganConfigService organConfigService; + private final SuspectPersonInfoRepository suspectPersonInfoRepository; + + @GetMapping("/internationalCrimeArrest") + public ModelAndView internationalCrimeArrest(@AuthenticationPrincipal UserInfo loginUser,InternationalCrimeArrest internationalCrimeArrest) { + ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrest"); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/internationalCrimeArrest").get(0).getAccessAuth(); + + mav.addObject("accessAuth", accessAuth); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + + internationalCrimeArrest.setQueryInfo(); + List internationalCrimeArrestList = internationalCrimeArrestService.selectInternationalCrimeArrestList(internationalCrimeArrest); + + for (InternationalCrimeArrest ica:internationalCrimeArrestList) { + ica.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(ica.getIcaKey())); + } + + mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList); + internationalCrimeArrest.setContentCnt(internationalCrimeArrestService.selectInternationalCrimeArrestListCnt(internationalCrimeArrest)); + internationalCrimeArrest.setPaginationInfo(); + mav.addObject("organConfigList", selectOrganList()); + mav.addObject("searchParams", internationalCrimeArrest); + return mav; + } + + @GetMapping("/internationalCrimeArrest/internationalCrimeArrestEditModal") + public ModelAndView internationalCrimeArrestEditModal(@AuthenticationPrincipal UserInfo loginUser, InternationalCrimeArrest internationalCrimeArrest){ + ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal"); + if(internationalCrimeArrest.getIcaKey()!=null){ + internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey()); + }else{ + internationalCrimeArrest.setWrtOrgan(loginUser.getOgCd()); + internationalCrimeArrest.setWrtNm(loginUser.getUserNm()); + internationalCrimeArrest.setWrtDt(LocalDateTime.now()); + internationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(internationalCrimeArrest.getIcaKey())); + } + mav.addObject("organConfigList", selectOrganList()); + mav.addObject("internationalCrimeArrest", internationalCrimeArrest); + return mav; + } + + @GetMapping("/internationalCrimeArrest/internationalCrimeArrestViewModal") + public ModelAndView internationalCrimeArrestViewModal(@AuthenticationPrincipal UserInfo loginUser, InternationalCrimeArrest internationalCrimeArrest){ + ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrestViewModal"); + internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey()); + mav.addObject("internationalCrimeArrest", internationalCrimeArrest); + mav.addObject("userSeq",loginUser.getUserSeq()); + mav.addObject("organConfigList", selectOrganList()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/internationalCrimeArrest").get(0).getAccessAuth()); + return mav; + } + + @PostMapping("/internationalCrimeArrest/saveInternationalCrimeArrest") + public Integer saveInternationalCrimeArrest(@AuthenticationPrincipal UserInfo loginUser, + InternationalCrimeArrest internationalCrimeArrest){ + internationalCrimeArrest.setWrtUserSeq(loginUser.getUserSeq()); + return internationalCrimeArrestService.savedInternationalCrimeArrest(internationalCrimeArrest); + } + + public List selectOrganList(){ + List organCdList = codeMgtService.selectCodeMgtList("OG"); + List organConfigList = organConfigService.selectSavedOrganList(); + for(CodeMgt organCode: organCdList){ + if(!organCode.getItemCd().equals("OG001")){ + boolean usedFlag = false; + for(OrganConfig organConfig: organConfigList){ + if(organCode.getItemCd().equals(organConfig.getOrganCd())){ + usedFlag = true; + organConfig.setOrganNm(organCode.getItemValue()); + organConfig.setUseState("T"); + break; + } + } + if(!usedFlag){ + OrganConfig organConfig = new OrganConfig(); + organConfig.setOrganCd(organCode.getItemCd()); + organConfig.setOrganNm(organCode.getItemValue()); + organConfig.setUseState("F"); + organConfigList.add(organConfig); + } + } + } + return organConfigList; + } +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java new file mode 100644 index 0000000..11686f6 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java @@ -0,0 +1,12 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.mapper; + +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface InternationalCrimeArrestMapper{ + List selectInternationalCrimeArrestList(InternationalCrimeArrest internationalCrimeArrest); + Integer selectInternationalCrimeArrestListCnt(InternationalCrimeArrest internationalCrimeArrest); +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/InternationalCrimeArrest.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/InternationalCrimeArrest.java new file mode 100644 index 0000000..1e35b1b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/InternationalCrimeArrest.java @@ -0,0 +1,102 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "international_crime_arrest") +public class InternationalCrimeArrest extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ica_key") + private Integer icaKey; + @Column(name = "organ") + private String organ; + @Column(name = "department") + private String department; + @Column(name = "crime_type") + private String crimeType; + @Column(name = "violation_type") + private String violationType; + @Column(name = "crime_name") + private String crimeName; + @Column(name = "smuggling_amount") + private String smugglingAmount; + @Column(name = "occur_table") + private String occurTable; + @Column(name = "arrest_table") + private String arrestTable; + @Column(name = "suspect_table") + private String suspectTable; + @Column(name = "crime_awareness_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate crimeAwarenessDt; + @Column(name = "case_sent_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate caseSentDt; + @Column(name = "process_result") + private String processResult; + @Column(name = "other_crime") + private String otherCrime; + @Column(name = "case_num") + private String caseNum; + @Column(name = "case_overview") + private String caseOverview; + @Column(name = "sea_area") + private String seaArea; + @Column(name = "arrest_area") + private String arrestArea; + @Column(name = "means") + private String means; + @Column(name = "purpose") + private String purpose; + @Column(name = "smuggled_goods") + private String smuggledGoods; + @Column(name = "crackdown_personel") + private Integer crackdownPersonel; + @Column(name = "violation_amount") + private String violationAmount; + @Column(name = "destination") + private String destination; + @Column(name = "content_status") + private String contentStatus; + @Column(name = "crime_form") + private String crimeForm; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Transient + private List suspectPersonInfoList; + @Transient + private List deleteSpiKeyList; + @Transient + private String processResultEtc; + @Transient + private String smuggledGoodsEtc; + @Transient + private String meansEtc; + @Transient + private String purposesEtc; +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/SuspectPersonInfo.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/SuspectPersonInfo.java new file mode 100644 index 0000000..c70258f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/SuspectPersonInfo.java @@ -0,0 +1,47 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "suspect_person_info") +public class SuspectPersonInfo extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "spi_key") + private Integer spiKey; + @Column(name = "ica_key") + private Integer icaKey; + @Column(name = "sex") + private String sex; + @Column(name = "age") + private String age; + @Column(name = "country") + private String country; + @Column(name = "stay_qualification") + private String stayQualification; + @Column(name = "stay_period_expired_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDateTime stayPeriodExpiredDt; + @Column(name = "entry_visa") + private String entryVisa; + + @Transient + private List icaKeyList; + @Transient + private List spiKeyList; + @Transient + private String countryEtc; +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/InternationalCrimeArrestRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/InternationalCrimeArrestRepository.java new file mode 100644 index 0000000..6d1d977 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/InternationalCrimeArrestRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository; + +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface InternationalCrimeArrestRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/SuspectPersonInfoRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/SuspectPersonInfoRepository.java new file mode 100644 index 0000000..f4ad9db --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/SuspectPersonInfoRepository.java @@ -0,0 +1,20 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository; + +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + + +public interface SuspectPersonInfoRepository extends JpaRepository { + List findByIcaKey(Integer icaKey); + @Transactional + @Modifying + @Query("delete from SuspectPersonInfo s where s.spiKey in :idList") + void deleteAllByIdInQuery(@Param("idList") List deleteKeyList); +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java new file mode 100644 index 0000000..85fc39a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java @@ -0,0 +1,72 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.mapper.InternationalCrimeArrestMapper; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository.InternationalCrimeArrestRepository; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class InternationalCrimeArrestService extends BaseService { + private final InternationalCrimeArrestRepository internationalCrimeArrestRepository; + private final InternationalCrimeArrestMapper internationalCrimeArrestMapper; + private final SuspectPersonInfoRepository suspectPersonInfoRepository; + + public List selectInternationalCrimeArrestList(InternationalCrimeArrest InternationalCrimeArrest) { + return internationalCrimeArrestMapper.selectInternationalCrimeArrestList(InternationalCrimeArrest); + } + + public Integer selectInternationalCrimeArrestListCnt(InternationalCrimeArrest internationalCrimeArrest) { + return internationalCrimeArrestMapper.selectInternationalCrimeArrestListCnt(internationalCrimeArrest); + } + + public InternationalCrimeArrest selectInternationalCrimeArrest(Integer icaKey) { + InternationalCrimeArrest savedInternationalCrimeArrest = internationalCrimeArrestRepository.findById(icaKey).orElse(null); + if (savedInternationalCrimeArrest != null) { + savedInternationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(icaKey)); + } + return savedInternationalCrimeArrest; + } + + @Transactional + public Integer savedInternationalCrimeArrest(InternationalCrimeArrest internationalCrimeArrest) { + if (internationalCrimeArrest.getMeansEtc() != null) { + internationalCrimeArrest.setMeans(internationalCrimeArrest.getMeansEtc()); + } + if (internationalCrimeArrest.getPurposesEtc() != null) { + internationalCrimeArrest.setPurpose(internationalCrimeArrest.getPurposesEtc()); + } + if (internationalCrimeArrest.getSmuggledGoodsEtc() != null) { + internationalCrimeArrest.setSmuggledGoods(internationalCrimeArrest.getSmuggledGoodsEtc()); + } + if (internationalCrimeArrest.getProcessResultEtc() != null) { + internationalCrimeArrest.setProcessResult(internationalCrimeArrest.getProcessResultEtc()); + } + + Integer icaKey = internationalCrimeArrestRepository.save(internationalCrimeArrest).getIcaKey(); + + if (internationalCrimeArrest.getDeleteSpiKeyList() != null) { + suspectPersonInfoRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpiKeyList()); + } + + if (internationalCrimeArrest.getSuspectPersonInfoList() != null) { + for(SuspectPersonInfo info: internationalCrimeArrest.getSuspectPersonInfoList()){ + if (info.getCountryEtc() != null) { + info.setCountry(info.getCountryEtc()); + } + info.setIcaKey(icaKey); + } + suspectPersonInfoRepository.saveAll(internationalCrimeArrest.getSuspectPersonInfoList()); + } + + return icaKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/FipTargetController.java b/src/main/java/com/dbnt/faisp/fipTarget/FipTargetController.java new file mode 100644 index 0000000..570caf8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/FipTargetController.java @@ -0,0 +1,477 @@ +package com.dbnt.faisp.fipTarget; + + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.fipTarget.model.PartInfo; +import com.dbnt.faisp.fipTarget.model.PartInfoFile; +import com.dbnt.faisp.fipTarget.model.PartWork; +import com.dbnt.faisp.fipTarget.model.PartWorkFile; +import com.dbnt.faisp.fipTarget.model.VulnFile; +import com.dbnt.faisp.fipTarget.model.Vulnerable; +import com.dbnt.faisp.fipTarget.service.FipTargetService; +import com.dbnt.faisp.organMgt.service.OrganConfigService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.userInfo.service.UserInfoService; +import com.dbnt.faisp.util.ParamMap; +import com.dbnt.faisp.util.Utils; + +import lombok.RequiredArgsConstructor; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/target") +public class FipTargetController { + + private final OrganConfigService organConfigService; + private final AuthMgtService authMgtService; + private final FipTargetService fipTargetService; + private final UserInfoService userInfoService; + + // 외사분실운영현황 시작 + @GetMapping("/partInfoList") + public ModelAndView partInfoList(@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo, HttpServletResponse response) { + ModelAndView mav = new ModelAndView("fipTarget/partInfoList"); + partInfo.setDownOrganCdList(loginUser.getDownOrganCdList()); + //엑셀다운 + if(partInfo.getExcel() != null && partInfo.getExcel().equals("Y")){ + ParamMap header = fipTargetService.selectWorkTypeTotal(partInfo); + String[] headers = { "mgt_organ", "land_police", "terminal_nm", "mp_work_type", "mp_people_cnt", "mp_description", "pl_work_type", "pl_people_cnt", "pl_description", "pi_manager_name", "rent_price", "utility_price", "wrt_dt"}; + String[] headerNames = { "해경서", "육경서","터미넡명", "해경", "", "", "육경", "", "", "", "", "",""}; + String[] headerNames2 = null; + if(header != null) { + headerNames2 = new String[] { "", "", "", "상주 "+header.getString("mp_sangju")+"개소 "+header.getString("mp_sangju_total")+"명" + ,"비상주 "+header.getString("mp_bsangju")+"개소 "+header.getString("mp_bsangju_total")+"명" + ,"폐쇄 "+header.getString("mp_closure")+"개소 "+header.getString("mp_closure_total")+"명" + ,"상주 "+header.getString("pl_sangju")+"개소 "+header.getString("pl_sangju_total")+"명" + ,"비상주 "+header.getString("pl_bsangju")+"개소 "+header.getString("pl_bsangju_total")+"명" + ,"폐쇄 "+header.getString("pl_closure")+"개소 "+header.getString("pl_closure_total")+"명" + , "", "", "", "" }; + }else { + headerNames2 = new String[] { "", "","", "상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명","상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명", "", "", "", "" }; + } + String[] headerNames3 = { "", "","", "근무방법", "명", "비고", "근무방법", "명", "비고", "담당자", "임차료", "공공요금", "최종수정일" }; + String[] columnType = { "String", "String","String", "String", "int", "String", "String", "int", "String", "String", "String","String", "String"}; + String sheetName = "외사 분실 현황"; + String excelFileName = "외사 분실 현황"; + List partInfoList= fipTargetService.selectPartInfoList(partInfo); + + try { + Utils.partInfolistToExcel(partInfoList, response, headers, headerNames,headerNames2,headerNames3, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; + } + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + partInfo.setQueryInfo(); + mav.addObject("total", fipTargetService.selectWorkTypeTotal(partInfo)); + mav.addObject("partInfoList", fipTargetService.selectPartInfoList(partInfo)); + partInfo.setContentCnt(fipTargetService.selectPartInfoListCnt(partInfo)); + partInfo.setPaginationInfo(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("searchParams", partInfo); + return mav; + } + + @GetMapping("/partInfoEditModal") + public ModelAndView partInfoEditModal(@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo) { + ModelAndView mav = new ModelAndView("fipTarget/partInfoEditModal"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); + mav.addObject("userOrgan", loginUser.getOgCd()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("accessAuth", accessAuth); + + return mav; + } + + @GetMapping("/partInfoSelecBox") + public ModelAndView equipTypeSelecBox(String ogCd) { + ModelAndView mav = new ModelAndView("fipTarget/partInfoSelecBox"); + ParamMap param = new ParamMap(); + param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(ogCd)); + mav.addObject("managerList", userInfoService.selectManagerList(param)); + return mav; + } + + @PostMapping("/savePartInfo") + public void savePartInfo (@AuthenticationPrincipal UserInfo loginUser, PartInfo partInfo,MultipartHttpServletRequest request){ + partInfo.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + partInfo.setWrtNm(loginUser.getUserId()); + partInfo.setWrtPart(loginUser.getOfcCd()); + partInfo.setWrtUserSeq(loginUser.getUserSeq()); + partInfo.setWrtOrgan(loginUser.getOgCd()); + partInfo.setWrtDt(LocalDateTime.now()); + fipTargetService.savePartInfo(partInfo); + } + + @GetMapping("/updatePartInfoPage") + public ModelAndView updatePartInfoPage(@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo) { + ModelAndView mav = new ModelAndView("fipTarget/partInfoModifyModal"); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + PartInfo partInfoView = fipTargetService.selectPartInfo(partInfo); + ParamMap param = new ParamMap(); + param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(partInfoView.getMgtOrgan())); + mav.addObject("managerList", userInfoService.selectManagerList(param)); + partInfoView.setFileList(fipTargetService.selectPartInfoFile(partInfo)); + mav.addObject("partInfo", partInfoView); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("userId", loginUser.getUserId()); + mav.addObject("wrtId", fipTargetService.selectPartInfoFirstId(partInfo)); + return mav; + } + + @PostMapping("/updatePartInfo") + public int updatePartInfo (@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ + partInfo.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + partInfo.setWrtUserSeq(loginUser.getUserSeq()); + partInfo.setWrtNm(loginUser.getUserId()); + partInfo.setWrtOrgan(loginUser.getOgCd()); + partInfo.setWrtPart(loginUser.getOfcCd()); + partInfo.setWrtDt(LocalDateTime.now()); + fipTargetService.updatePartInfo(partInfo,deleteFileSeq); + return partInfo.getPiSeq(); + } + + @GetMapping("/PartInfoHistoryPage") + public ModelAndView PartInfoHistoryPage(PartInfo partInfo) { + ModelAndView mav = new ModelAndView("fipTarget/partInfoHistory"); + mav.addObject("partInfoList", fipTargetService.selectPartInfoSeq(partInfo)); + return mav; + } + + @GetMapping("/partInfoHistoryView") + @ResponseBody + public PartInfo partInfoHistoryView(PartInfo partInfo){ + PartInfo partInfoHistory = fipTargetService.selectPartInfoHistoryView(partInfo); + partInfoHistory.setFileList(fipTargetService.selectPartInfoFileHistoryView(partInfo)); + return partInfoHistory; + } + + @PostMapping("/deletePartInfo") + @ResponseBody + public void deletePartInfo(@RequestBody PartInfo partInfo) { + fipTargetService.deletePartInfo(partInfo); + } + + @GetMapping("/partInfoFileDownload") + public void partInfoFileDownload(HttpServletRequest request, + HttpServletResponse response, + Integer fileSeq, + Integer piSeq, + Integer versionNo) { + PartInfoFile downloadFile = fipTargetService.selectPartInfoFileDown(fileSeq, piSeq,versionNo); + + BufferedInputStream in; + BufferedOutputStream out; + try { + File file = new File(downloadFile.getFilePath(), downloadFile.getConvNm()); + + setDisposition(downloadFile.getOrigNm()+'.'+downloadFile.getFileExtn(), request, response); + in = new BufferedInputStream(new FileInputStream(file)); + out = new BufferedOutputStream(response.getOutputStream()); + FileCopyUtils.copy(in, out); + out.flush(); + if(out!=null) out.close(); + if(in!=null )in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws IOException { + String browser = getBrowser(request); + + String dispositionPrefix = "attachment; filename="; + String encodedFilename = null; + + if (browser.equals("MSIE")) { + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지 + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Firefox")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Opera")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Chrome")) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < filename.length(); i++) { + char c = filename.charAt(i); + if (c > '~') { + sb.append(URLEncoder.encode("" + c, "UTF-8")); + } else { + sb.append(c); + } + } + encodedFilename = sb.toString(); + } else { + throw new IOException("Not supported browser"); + } + + response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); + + if ("Opera".equals(browser)) { + response.setContentType("application/octet-stream;charset=UTF-8"); + } + } + + private String getBrowser(HttpServletRequest request) { + String header = request.getHeader("User-Agent"); + if (header.indexOf("MSIE") > -1) { + return "MSIE"; + } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지 + return "Trident"; + } else if (header.indexOf("Chrome") > -1) { + return "Chrome"; + } else if (header.indexOf("Opera") > -1) { + return "Opera"; + } + return "Firefox"; + } + //외사분실 운영현황 끝 + //외사분실실적 시작 + @GetMapping("/partWorkList") + public ModelAndView partWorkList(@AuthenticationPrincipal UserInfo loginUser,PartWork partWork, HttpServletResponse response) { + ModelAndView mav = new ModelAndView("fipTarget/partWorkList"); + partWork.setDownOrganCdList(loginUser.getDownOrganCdList()); + //엑셀다운 + if(partWork.getExcel() != null && partWork.getExcel().equals("Y")){ + String[] headers = { "terminal_nm", "wrt_nm", "work_dt", "work_type_ch", "work_type_poci", "work_type_sri", "work_type_ji", "work_type_mt", "work_type_etc", "description", "file_cnt","wrt_dt"}; + String[] headerNames = { "외사 터미널명", "작성자","일시", "종류", "", "", "", "", "", "비고", "첨부파일", "최근수정일"}; + String[] headerNames2 = { "", "","", "사건처리", "범죄첩보제공", "SRI", "합동점검", "회의", "기타", "", "", ""}; + String[] columnType = { "String", "String","String", "String", "String", "String", "String", "String", "String", "String", "String","String"}; + String sheetName = "외사분실 실적"; + String excelFileName = "외사분실 실적"; + List partWorkList= fipTargetService.selectPartWorkList(partWork); + + try { + Utils.partWorkListToExcel(partWorkList, response, headers, headerNames,headerNames2, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; + } + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partWorkList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + partWork.setQueryInfo(); + mav.addObject("partWorkList", fipTargetService.selectPartWorkList(partWork)); + partWork.setContentCnt(fipTargetService.selectPartWorkListCnt(partWork)); + partWork.setPaginationInfo(); + mav.addObject("uesrId", loginUser.getUserId()); + mav.addObject("searchParams", partWork); + return mav; + } + + @GetMapping("/partWorkEditModal") + public ModelAndView partWorkEditModal(@AuthenticationPrincipal UserInfo loginUser,PartWork partWork) { + ModelAndView mav = new ModelAndView("fipTarget/partWorkEditModal"); + partWork.setDownOrganCdList(loginUser.getDownOrganCdList()); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partWorkList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("tnList", fipTargetService.selectTerminalName(partWork)); + + return mav; + } + + @PostMapping("/savePartWork") + public void savePartWork (@AuthenticationPrincipal UserInfo loginUser, PartWork partWork,MultipartHttpServletRequest request){ + partWork.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + partWork.setWrtNm(loginUser.getUserId()); + partWork.setWrtPart(loginUser.getOfcCd()); + partWork.setWrtUserSeq(loginUser.getUserSeq()); + partWork.setWrtOrgan(loginUser.getOgCd()); + partWork.setWrtDt(LocalDateTime.now()); + fipTargetService.savePartWork(partWork); + } + + @GetMapping("/partWorkView") + public ModelAndView partWorkView(@AuthenticationPrincipal UserInfo loginUser,PartWork partWork) { + ModelAndView mav = new ModelAndView("fipTarget/partWorkModifyModal"); + partWork.setDownOrganCdList(loginUser.getDownOrganCdList()); + PartWork partWorkView = fipTargetService.selectPartWorkInfo(partWork); + partWorkView.setFileList(fipTargetService.selectPartWorkFile(partWork)); + mav.addObject("pwInfo", partWorkView); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("userId", loginUser.getUserId()); + return mav; + } + + @PostMapping("/updatePartWork") + public PartWork updatePartWork (@AuthenticationPrincipal UserInfo loginUser, PartWork partWork, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ + partWork.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + partWork.setWrtDt(LocalDateTime.now()); + fipTargetService.updatePartWork(partWork,deleteFileSeq); + return partWork; + } + + @PostMapping("/deletePartWork") + @ResponseBody + public void deletePartWork(@RequestBody PartWork partWork) { + fipTargetService.deletePartWork(partWork); + } + + @GetMapping("/partWorkFileDownload") + public void partWorkFileDownload(HttpServletRequest request, + HttpServletResponse response, + Integer fileSeq, + Integer pwSeq, + Integer piSeq) { + PartWorkFile downloadFile = fipTargetService.selectPartWorkFileDown(fileSeq, pwSeq,piSeq); + + BufferedInputStream in; + BufferedOutputStream out; + try { + File file = new File(downloadFile.getFilePath(), downloadFile.getConvNm()); + + setDisposition(downloadFile.getOrigNm()+'.'+downloadFile.getFileExtn(), request, response); + in = new BufferedInputStream(new FileInputStream(file)); + out = new BufferedOutputStream(response.getOutputStream()); + FileCopyUtils.copy(in, out); + out.flush(); + if(out!=null) out.close(); + if(in!=null )in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } +//외사분실실적 끝 +//외사취약지 시작 + + @GetMapping("/vulnerableList") + public ModelAndView vulnerableList(@AuthenticationPrincipal UserInfo loginUser,Vulnerable vulnerable, HttpServletResponse response) { + ModelAndView mav = new ModelAndView("fipTarget/vulnerableList"); + + mav.addObject("vulnerableList", fipTargetService.selectVulnerableList(vulnerable)); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/vulnerableList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("searchParams", vulnerable); + return mav; + } + + @GetMapping("/vulnEditModal") + public ModelAndView vulnEditModal(@AuthenticationPrincipal UserInfo loginUser,Vulnerable vulnerable) { + ModelAndView mav = new ModelAndView("fipTarget/vulnEditModal"); + vulnerable.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("organList", fipTargetService.selecetVulnOrganList(vulnerable)); + mav.addObject("userOrgan", loginUser.getOgCd()); + if(vulnerable.getVulnKey() != null) { + vulnerable = fipTargetService.selectVulnInfo(vulnerable); + vulnerable.setFileList(fipTargetService.selectVulnFile(vulnerable.getVulnKey())); + mav.addObject("userId", loginUser.getUserId()); + } + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/vulnerableList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + vulnerable.setWrtNm(loginUser.getUserId()); + vulnerable.setWrtPart(loginUser.getOfcCd()); + vulnerable.setWrtUserSeq(loginUser.getUserSeq()); + vulnerable.setWrtOrgan(loginUser.getOgCd()); + mav.addObject("info", vulnerable); + return mav; + } + + @PostMapping("/saveVulnerable") + public Integer saveVulnerable (@AuthenticationPrincipal UserInfo loginUser, Vulnerable vulnerable,MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ + vulnerable.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + vulnerable.setWrtDt(LocalDateTime.now()); + Integer result = fipTargetService.saveVulnerable(vulnerable,deleteFileSeq); + return result; + } + + @GetMapping("/vulnInfoModal") + public ModelAndView vulnInfoModal(@AuthenticationPrincipal UserInfo loginUser,Vulnerable vulnerable) { + ModelAndView mav = new ModelAndView("fipTarget/vulnInfoModal"); + vulnerable.setDownOrganCdList(loginUser.getDownOrganCdList());; + mav.addObject("vulnInfoList", fipTargetService.selectVulnInfoList(vulnerable)); + mav.addObject("organNm", fipTargetService.selectOrganName(vulnerable.getMgtOrgan())); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/vulnerableList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + + return mav; + } + + @GetMapping("/vulnViewModal") + public ModelAndView vulnViewModal(@AuthenticationPrincipal UserInfo loginUser,Vulnerable vulnerable) { + ModelAndView mav = new ModelAndView("fipTarget/vulnViewModal"); + Vulnerable vulnInfo = fipTargetService.selectVulnInfo(vulnerable); + vulnInfo.setFileList(fipTargetService.selectVulnFile(vulnInfo.getVulnKey())); + mav.addObject("vulnInfo", vulnInfo); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/vulnerableList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + + return mav; + } + + @GetMapping("/vulnFileDownload") + public void vulnFileDownload(HttpServletRequest request, + HttpServletResponse response, + Integer fileSeq, + Integer vulnKey) { + VulnFile downloadFile = fipTargetService.selectVulnInfoFileDown(fileSeq, vulnKey); + + BufferedInputStream in; + BufferedOutputStream out; + try { + File file = new File(downloadFile.getFilePath(), downloadFile.getConvNm()); + + setDisposition(downloadFile.getOrigNm()+'.'+downloadFile.getFileExtn(), request, response); + in = new BufferedInputStream(new FileInputStream(file)); + out = new BufferedOutputStream(response.getOutputStream()); + FileCopyUtils.copy(in, out); + out.flush(); + if(out!=null) out.close(); + if(in!=null )in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @PostMapping("/deleteVulnerable") + @ResponseBody + public void deleteVulnerable(@RequestBody Vulnerable vulnerable) { + fipTargetService.deleteVulnerable(vulnerable); + } +//외사취약지 끝 + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/mapper/FipTargetMapper.java b/src/main/java/com/dbnt/faisp/fipTarget/mapper/FipTargetMapper.java new file mode 100644 index 0000000..2d4223f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/mapper/FipTargetMapper.java @@ -0,0 +1,57 @@ +package com.dbnt.faisp.fipTarget.mapper; + +import com.dbnt.faisp.fipTarget.model.PartInfo; +import com.dbnt.faisp.fipTarget.model.PartInfoFile; +import com.dbnt.faisp.fipTarget.model.PartWork; +import com.dbnt.faisp.fipTarget.model.Vulnerable; +import com.dbnt.faisp.util.ParamMap; + +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface FipTargetMapper { + + List selectPartInfoManagerList(ParamMap param); + + List selectPartInfoList(PartInfo partInfo); + + Integer selectPartInfoListCnt(PartInfo partInfo); + + ParamMap selectWorkTypeTotal(PartInfo partInfo); + + PartInfo selectPartInfo(PartInfo partInfo); + + List selectPartInfoFile(PartInfo partInfo); + + List selectPartInfoSeq(PartInfo partInfo); + + PartInfo selectPartInfoHistoryView(PartInfo partInfo); + + List selectPartInfoFileHistoryView(PartInfo partInfo); + + String selectPartInfoFirstId(Integer piSeq); + + List selectTerminalName(PartWork partWork); + + List selectPartWorkList(PartWork partWork); + + Integer selectPartWorkListCnt(PartWork partWork); + + PartWork selectPartWorkInfo(PartWork partWork); + + List selecetVulnOrganList(Vulnerable vulnerable); + + List selectVulnerableList(Vulnerable vulnerable); + + List selectVulnInfoList(Vulnerable vulnerable); + + String selectOrganName(String mgtOrgan); + + Vulnerable selectVulnInfo(Vulnerable vulnerable); + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/model/PartInfo.java b/src/main/java/com/dbnt/faisp/fipTarget/model/PartInfo.java new file mode 100644 index 0000000..92becf1 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/model/PartInfo.java @@ -0,0 +1,143 @@ +package com.dbnt.faisp.fipTarget.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(PartInfo.PartInfoId.class) +@Table(name = "part_info") +public class PartInfo extends BaseModel implements Serializable{ + @Id + @Column(name = "pi_seq") + private Integer piSeq; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "mgt_organ") + private String mgtOrgan; + @Column(name = "pi_user_seq") + private Integer piUserSeq; + @Column(name = "land_police") + private String landPolice; + @Column(name = "rent_type") + private String rentType; + @Column(name = "rent_price") + private Integer rentPrice; + @Column(name = "utility_type") + private String utilityType; + @Column(name = "utility_price") + private Integer utilityPrice; + @Column(name = "terminal_nm") + private String terminalNm; + @Column(name = "mp_work_type") + private String mpWorkType; + @Column(name = "mp_people_cnt") + private Integer mpPeopleCnt; + @Column(name = "mp_description") + private String mpDescription; + @Column(name = "pl_work_type") + private String plWorkType; + @Column(name = "pl_people_cnt") + private Integer plPeopleCnt; + @Column(name = "pl_description") + private String plDescription; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Transient + private List multipartFileList; + + @Transient + private String piManagerName; + + @Transient + private String excel; + + @Transient + private List fileList; + + + + + +@Override +public String toString() { + return "PartInfo [piSeq=" + piSeq + ", versionNo=" + versionNo + ", mgtOrgan=" + mgtOrgan + ", piUserSeq=" + + piUserSeq + ", landPolice=" + landPolice + ", rentType=" + rentType + ", rentPrice=" + rentPrice + + ", utilityType=" + utilityType + ", utilityPrice=" + utilityPrice + ", terminalNm=" + terminalNm + + ", mpWorkType=" + mpWorkType + ", mpPeopleCnt=" + mpPeopleCnt + ", mpDescription=" + mpDescription + + ", plWorkType=" + plWorkType + ", plPeopleCnt=" + plPeopleCnt + ", plDescription=" + plDescription + + ", wrtOrgan=" + wrtOrgan + ", wrtPart=" + wrtPart + ", wrtUserSeq=" + wrtUserSeq + ", wrtNm=" + wrtNm + + ", wrtDt=" + wrtDt + ", multipartFileList=" + multipartFileList + ", piManagerName=" + piManagerName + + ", fileList=" + fileList + "]"; +} + + + + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class PartInfoId implements Serializable { + private Integer piSeq; + private Integer versionNo; +} + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/model/PartInfoFile.java b/src/main/java/com/dbnt/faisp/fipTarget/model/PartInfoFile.java new file mode 100644 index 0000000..efef253 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/model/PartInfoFile.java @@ -0,0 +1,87 @@ +package com.dbnt.faisp.fipTarget.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(PartInfoFile.PartInfoFileId.class) +@Table(name = "part_info_file") +public class PartInfoFile extends BaseModel implements Serializable{ + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Id + @Column(name = "pi_seq") + private Integer piSeq; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "file_path") + private String filePath; + + + +@Override +public String toString() { + return "PartInfoFile [fileSeq=" + fileSeq + ", piSeq=" + piSeq + ", versionNo=" + versionNo + ", origNm=" + origNm + + ", convNm=" + convNm + ", fileExtn=" + fileExtn + ", fileSize=" + fileSize + ", filePath=" + filePath + + "]"; +} + + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class PartInfoFileId implements Serializable { + private Integer fileSeq; + private Integer piSeq; + private Integer versionNo; +} + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/model/PartWork.java b/src/main/java/com/dbnt/faisp/fipTarget/model/PartWork.java new file mode 100644 index 0000000..342be80 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/model/PartWork.java @@ -0,0 +1,132 @@ +package com.dbnt.faisp.fipTarget.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(PartWork.PartWorkId.class) +@Table(name = "part_work") +public class PartWork extends BaseModel implements Serializable{ + @Id + @Column(name = "pw_seq") + private Integer pwSeq; + @Id + @Column(name = "pi_seq") + private Integer piSeq; + @Column(name = "work_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate workDt; + @Column(name = "work_type") + private String workType; + @Column(name = "work_info") + private String workInfo; + @Column(name = "description") + private String description; + @Column(name = "save_yn") + private String saveYn; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Transient + private List multipartFileList; + + @Transient + private String excel; + @Transient + private String terminalNm; + @Transient + private String workTypeCh; + @Transient + private String workTypePoci; + @Transient + private String workTypeSri; + @Transient + private String workTypeJi; + @Transient + private String workTypeMt; + @Transient + private String workTypeEtc; + @Transient + private Integer fileCnt; + + @Transient + private List fileList; + + + + +@Override +public String toString() { + return "PartWork [pwSeq=" + pwSeq + ", piSeq=" + piSeq + ", workDt=" + workDt + ", workType=" + workType + + ", workInfo=" + workInfo + ", description=" + description + ", saveYn=" + saveYn + ", wrtOrgan=" + + wrtOrgan + ", wrtPart=" + wrtPart + ", wrtUserSeq=" + wrtUserSeq + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + + ", multipartFileList=" + multipartFileList + ", excel=" + excel + ", fileList=" + fileList + "]"; +} + + + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class PartWorkId implements Serializable { + private Integer pwSeq; + private Integer piSeq; +} + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/model/PartWorkFile.java b/src/main/java/com/dbnt/faisp/fipTarget/model/PartWorkFile.java new file mode 100644 index 0000000..7e25415 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/model/PartWorkFile.java @@ -0,0 +1,95 @@ +package com.dbnt.faisp.fipTarget.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(PartWorkFile.PartWorkFileId.class) +@Table(name = "part_work_file") +public class PartWorkFile extends BaseModel implements Serializable{ + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Id + @Column(name = "pw_seq") + private Integer pwSeq; + @Id + @Column(name = "pi_seq") + private Integer piSeq; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "file_path") + private String filePath; + + + + + + + +@Override +public String toString() { + return "PartWorkFile [fileSeq=" + fileSeq + ", pwSeq=" + pwSeq + ", piSeq=" + piSeq + ", origNm=" + origNm + + ", convNm=" + convNm + ", fileExtn=" + fileExtn + ", fileSize=" + fileSize + ", filePath=" + filePath + + "]"; +} + + + + + + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class PartWorkFileId implements Serializable { + private Integer fileSeq; + private Integer pwSeq; + private Integer piSeq; +} + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/model/VulnFile.java b/src/main/java/com/dbnt/faisp/fipTarget/model/VulnFile.java new file mode 100644 index 0000000..2d25266 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/model/VulnFile.java @@ -0,0 +1,85 @@ +package com.dbnt.faisp.fipTarget.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(VulnFile.VulnFileId.class) +@Table(name = "vuln_file") +public class VulnFile extends BaseModel implements Serializable{ + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Id + @Column(name = "vuln_key") + private Integer vulnKey; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "file_path") + private String filePath; + + + + + + + +@Override +public String toString() { + return "VulnFile [fileSeq=" + fileSeq + ", vulnKey=" + vulnKey + ", origNm=" + origNm + ", convNm=" + convNm + + ", fileExtn=" + fileExtn + ", fileSize=" + fileSize + ", filePath=" + filePath + "]"; +} + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class VulnFileId implements Serializable { + private Integer fileSeq; + private Integer vulnKey; +} + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/model/Vulnerable.java b/src/main/java/com/dbnt/faisp/fipTarget/model/Vulnerable.java new file mode 100644 index 0000000..035ce4f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/model/Vulnerable.java @@ -0,0 +1,97 @@ +package com.dbnt.faisp.fipTarget.model; + +import com.dbnt.faisp.config.BaseModel; + + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; + + +import java.time.LocalDateTime; +import java.util.List; + + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "board_vuln") +public class Vulnerable extends BaseModel{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "vuln_key") + private Integer vulnKey; + @Column(name = "mgt_organ") + private String mgtOrgan; + @Column(name = "vuln_type") + private String vulnType; + @Column(name = "vuln_nm") + private String vulnNm; + @Column(name = "description") + private String description; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; + + @Transient + private List multipartFileList; + + @Transient + private String organNm; + + @Transient + private List fileList; + +@Override +public String toString() { + return "Vulnerable [vulnKey=" + vulnKey + ", mgtOrgan=" + mgtOrgan + ", vulnType=" + vulnType + ", vulnNm=" + vulnNm + + ", description=" + description + ", wrtOrgan=" + wrtOrgan + ", wrtPart=" + wrtPart + ", wrtUserSeq=" + + wrtUserSeq + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + ", multipartFileList=" + multipartFileList + + ", organNm=" + organNm + ", fileList=" + fileList + "]"; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/repository/PartInfoFileRepository.java b/src/main/java/com/dbnt/faisp/fipTarget/repository/PartInfoFileRepository.java new file mode 100644 index 0000000..93971f7 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/repository/PartInfoFileRepository.java @@ -0,0 +1,34 @@ +package com.dbnt.faisp.fipTarget.repository; + + +import com.dbnt.faisp.fipTarget.model.PartInfoFile; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface PartInfoFileRepository extends JpaRepository { + + PartInfoFile findTopByPiSeqOrderByFileSeq(Integer piSeq); + + List findByPiSeqAndVersionNoOrderByFileSeqAsc(Integer piSeq, Integer versionNo); + + PartInfoFile findTopByPiSeqOrderByFileSeqDesc(Integer piSeq); + + PartInfoFile findTopByPiSeqAndVersionNoOrderByFileSeqDesc(Integer piSeq, Integer versionNo); + + void deleteByPiSeq(Integer piSeq); + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/repository/PartInfoRepository.java b/src/main/java/com/dbnt/faisp/fipTarget/repository/PartInfoRepository.java new file mode 100644 index 0000000..a37ef8a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/repository/PartInfoRepository.java @@ -0,0 +1,24 @@ +package com.dbnt.faisp.fipTarget.repository; + + +import com.dbnt.faisp.fipTarget.model.PartInfo; + + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface PartInfoRepository extends JpaRepository { + + PartInfo findFirstByOrderByPiSeqDesc(); + + void deleteByPiSeq(Integer piSeq); + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/repository/PartWorkFileRepository.java b/src/main/java/com/dbnt/faisp/fipTarget/repository/PartWorkFileRepository.java new file mode 100644 index 0000000..d47c1d2 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/repository/PartWorkFileRepository.java @@ -0,0 +1,37 @@ +package com.dbnt.faisp.fipTarget.repository; + + +import com.dbnt.faisp.fipTarget.model.PartWorkFile; + + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface PartWorkFileRepository extends JpaRepository { + + PartWorkFile findTopByPwSeqAndPiSeqOrderByFileSeqDesc(Integer piSeq, Integer piSeq2); + + List findByPwSeqAndPiSeqOrderByFileSeqAsc(Integer pwSeq, Integer piSeq); + + List findByPwSeqAndPiSeq(Integer pwSeq, Integer piSeq); + + void deleteByPwSeqAndPiSeq(Integer pwSeq, Integer piSeq); + + List findByPiSeq(Integer piSeq); + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/repository/PartWorkRepository.java b/src/main/java/com/dbnt/faisp/fipTarget/repository/PartWorkRepository.java new file mode 100644 index 0000000..2fb186b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/repository/PartWorkRepository.java @@ -0,0 +1,27 @@ +package com.dbnt.faisp.fipTarget.repository; + + +import com.dbnt.faisp.fipTarget.model.PartWork; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface PartWorkRepository extends JpaRepository { + + PartWork findTopByPiSeqOrderByPwSeqDesc(Integer piSeq); + + void deleteByPwSeqAndPiSeq(Integer pwSeq, Integer piSeq); + + void deleteByPiSeq(Integer piSeq); + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/repository/VulnFileRepository.java b/src/main/java/com/dbnt/faisp/fipTarget/repository/VulnFileRepository.java new file mode 100644 index 0000000..7bf1282 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/repository/VulnFileRepository.java @@ -0,0 +1,23 @@ +package com.dbnt.faisp.fipTarget.repository; + + +import com.dbnt.faisp.fipTarget.model.VulnFile; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface VulnFileRepository extends JpaRepository { + + VulnFile findTopByVulnKeyOrderByFileSeqDesc(Integer vulnKey); + + List findByVulnKeyOrderByFileSeq(Integer vulnKey); + + List findByVulnKey(Integer vulnKey); + + void deleteByVulnKey(Integer vulnKey); + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/repository/VulnRepository.java b/src/main/java/com/dbnt/faisp/fipTarget/repository/VulnRepository.java new file mode 100644 index 0000000..ce1452a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/repository/VulnRepository.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.fipTarget.repository; + + +import com.dbnt.faisp.fipTarget.model.Vulnerable; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface VulnRepository extends JpaRepository { + + +} diff --git a/src/main/java/com/dbnt/faisp/fipTarget/service/FipTargetService.java b/src/main/java/com/dbnt/faisp/fipTarget/service/FipTargetService.java new file mode 100644 index 0000000..c435d4a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/service/FipTargetService.java @@ -0,0 +1,415 @@ +package com.dbnt.faisp.fipTarget.service; + + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.fipTarget.mapper.FipTargetMapper; +import com.dbnt.faisp.fipTarget.model.PartInfo; +import com.dbnt.faisp.fipTarget.model.PartInfo.PartInfoId; +import com.dbnt.faisp.fipTarget.model.PartInfoFile; +import com.dbnt.faisp.fipTarget.model.PartInfoFile.PartInfoFileId; +import com.dbnt.faisp.fipTarget.model.PartWork; +import com.dbnt.faisp.fipTarget.model.PartWork.PartWorkId; +import com.dbnt.faisp.fipTarget.model.PartWorkFile; +import com.dbnt.faisp.fipTarget.model.PartWorkFile.PartWorkFileId; +import com.dbnt.faisp.fipTarget.model.VulnFile; +import com.dbnt.faisp.fipTarget.model.VulnFile.VulnFileId; +import com.dbnt.faisp.fipTarget.model.Vulnerable; +import com.dbnt.faisp.fipTarget.repository.PartInfoFileRepository; +import com.dbnt.faisp.fipTarget.repository.PartInfoRepository; +import com.dbnt.faisp.fipTarget.repository.PartWorkFileRepository; +import com.dbnt.faisp.fipTarget.repository.PartWorkRepository; +import com.dbnt.faisp.fipTarget.repository.VulnFileRepository; +import com.dbnt.faisp.fipTarget.repository.VulnRepository; +import com.dbnt.faisp.publicBoard.model.PublicFile; +import com.dbnt.faisp.util.ParamMap; + +import lombok.RequiredArgsConstructor; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.*; + +@Service +@RequiredArgsConstructor +public class FipTargetService extends BaseService { + @Value("${spring.servlet.multipart.location}") + protected String locationPath; + + private final PartInfoRepository partInfoRepository; + private final PartInfoFileRepository partInfoFileRepository; + private final PartWorkRepository partWorkRepository; + private final PartWorkFileRepository partWorkFileRepository; + private final VulnRepository vulnRepository; + private final VulnFileRepository vulnFileRepository; + private final FipTargetMapper fipTargetMapper; + + @Transactional + public void savePartInfo(PartInfo partInfo) { + PartInfo dbPart = partInfoRepository.findFirstByOrderByPiSeqDesc(); + if(dbPart == null) { + partInfo.setPiSeq(1); + partInfo.setVersionNo(1); + partInfoRepository.save(partInfo); + } else { + partInfo.setPiSeq(dbPart.getPiSeq()+1); + partInfo.setVersionNo(1); + partInfoRepository.save(partInfo); + } + saveUploadFiles(partInfo.getPiSeq(),partInfo.getVersionNo(), partInfo.getMultipartFileList()); + } + + private void saveUploadFiles(Integer piSeq,Integer versionNo, List multipartFileList) { + PartInfoFile lastFileInfo = partInfoFileRepository.findTopByPiSeqAndVersionNoOrderByFileSeqDesc(piSeq,versionNo); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + if(multipartFileList == null || multipartFileList.isEmpty()) { + if(lastFileInfo == null || lastFileInfo.getOrigNm() == null ) { + PartInfoFile fileInfo = new PartInfoFile(); + fileInfo.setFileSeq(fileSeq); + fileInfo.setPiSeq(piSeq); + fileInfo.setVersionNo(versionNo); + partInfoFileRepository.save(fileInfo); + } + + } else { + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+File.separator+"publicFile"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + PartInfoFile fileInfo = new PartInfoFile(); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setPiSeq(piSeq); + fileInfo.setVersionNo(versionNo); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setFilePath(path); + partInfoFileRepository.save(fileInfo); + } + } + + } + + public List selectPartInfoList(PartInfo partInfo) { + return fipTargetMapper.selectPartInfoList(partInfo); + } + + public Integer selectPartInfoListCnt(PartInfo partInfo) { + return fipTargetMapper.selectPartInfoListCnt(partInfo); + } + + public ParamMap selectWorkTypeTotal(PartInfo partInfo) { + return fipTargetMapper.selectWorkTypeTotal(partInfo); + } + + public PartInfo selectPartInfo(PartInfo partInfo) { + return fipTargetMapper.selectPartInfo(partInfo); + } + + public List selectPartInfoFile(PartInfo partInfo) { + return fipTargetMapper.selectPartInfoFile(partInfo); + } + + @Transactional + public void updatePartInfo(PartInfo partInfo, List deleteFileSeq) { + PartInfo dbPart = partInfoRepository.findById(new PartInfoId(partInfo.getPiSeq(), partInfo.getVersionNo())).orElse(null); + PartInfo partTmp = new PartInfo(); + partTmp.setPiSeq(dbPart.getPiSeq()); + partTmp.setVersionNo(dbPart.getVersionNo()+1); + partTmp.setMgtOrgan(partInfo.getMgtOrgan()); + partTmp.setLandPolice(partInfo.getLandPolice()); + partTmp.setPiUserSeq(partInfo.getPiUserSeq()); + partTmp.setRentType(partInfo.getRentType()); + partTmp.setRentPrice(partInfo.getRentPrice()); + partTmp.setUtilityType(partInfo.getUtilityType()); + partTmp.setUtilityPrice(partInfo.getUtilityPrice()); + partTmp.setTerminalNm(partInfo.getTerminalNm()); + partTmp.setMpWorkType(partInfo.getMpWorkType()); + partTmp.setMpPeopleCnt(partInfo.getMpPeopleCnt()); + partTmp.setMpDescription(partInfo.getMpDescription()); + partTmp.setPlWorkType(partInfo.getPlWorkType()); + partTmp.setPlPeopleCnt(partInfo.getPlPeopleCnt()); + partTmp.setPlDescription(partInfo.getPlDescription()); + partTmp.setWrtUserSeq(partInfo.getWrtUserSeq()); + partTmp.setWrtNm(partInfo.getWrtNm()); + partTmp.setWrtPart(partInfo.getWrtPart()); + partTmp.setWrtOrgan(partInfo.getWrtOrgan()); + partTmp.setWrtDt(partInfo.getWrtDt()); + partInfoRepository.save(partTmp); + //업데이트하는 버전 파일조회 + List fileList = partInfoFileRepository.findByPiSeqAndVersionNoOrderByFileSeqAsc(partInfo.getPiSeq(),partInfo.getVersionNo()); + if(fileList.get(0).getOrigNm() != null) { + for(PartInfoFile fileInfo : fileList){ + PartInfoFile tmpFile = new PartInfoFile(); + tmpFile.setFileSeq(fileInfo.getFileSeq()); + tmpFile.setPiSeq(fileInfo.getPiSeq()); + tmpFile.setVersionNo(partTmp.getVersionNo()); + tmpFile.setOrigNm(fileInfo.getOrigNm()); + tmpFile.setConvNm(fileInfo.getConvNm()); + tmpFile.setFileExtn(fileInfo.getFileExtn()); + tmpFile.setFileSize(fileInfo.getFileSize()); + tmpFile.setFilePath(fileInfo.getFilePath()); + partInfoFileRepository.save(tmpFile); + } + } + //수정시 삭제한 파일삭제 + if(deleteFileSeq!=null && deleteFileSeq.size()>0){ + deletePartInfoFile(partTmp.getPiSeq(),partTmp.getVersionNo(), deleteFileSeq); + } + //파일업로드 + saveUploadFiles(partTmp.getPiSeq(),partTmp.getVersionNo(), partInfo.getMultipartFileList()); + } + + private void deletePartInfoFile(Integer piSeq,Integer versionNo, List deleteFileSeq) { + List partInfoFileList = partInfoFileRepository.findByPiSeqAndVersionNoOrderByFileSeqAsc(piSeq,versionNo); + for(PartInfoFile file: partInfoFileList){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getFilePath(), file.getConvNm())); + partInfoFileRepository.deleteById(new PartInfoFileId(file.getFileSeq(),piSeq,versionNo)); + } + } + } + + public List selectPartInfoSeq(PartInfo partInfo) { + return fipTargetMapper.selectPartInfoSeq(partInfo); + } + + public PartInfo selectPartInfoHistoryView(PartInfo partInfo) { + return fipTargetMapper.selectPartInfoHistoryView(partInfo); + } + + public List selectPartInfoFileHistoryView(PartInfo partInfo) { + return fipTargetMapper.selectPartInfoFileHistoryView(partInfo); + } + + @Transactional + public void deletePartInfo(PartInfo partInfo) { + //외사실적 파일,데이터삭제 + List partWorkFileList = partWorkFileRepository.findByPiSeq(partInfo.getPiSeq()); + if(partWorkFileList != null) { + for(PartWorkFile file: partWorkFileList){ + deleteStoredFile(new File(file.getFilePath(), file.getConvNm())); + partWorkFileRepository.deleteByPwSeqAndPiSeq(file.getPwSeq(),file.getPiSeq()); + } + } + partWorkRepository.deleteByPiSeq(partInfo.getPiSeq()); + //외사분실운영현황파일삭제 + List partInfoFileList= selectPartInfoFile(partInfo); + for(PartInfoFile file: partInfoFileList){ + if(file.getOrigNm() != null){ + deleteStoredFile(new File(file.getFilePath(), file.getConvNm())); + } + } + partInfoFileRepository.deleteByPiSeq(partInfo.getPiSeq()); + partInfoRepository.deleteByPiSeq(partInfo.getPiSeq()); + + } + + public PartInfoFile selectPartInfoFileDown(Integer fileSeq, Integer piSeq, Integer versionNo) { + return partInfoFileRepository.findById(new PartInfoFileId(fileSeq, piSeq,versionNo)).orElse(null); + } + + public String selectPartInfoFirstId(PartInfo partInfo) { + return fipTargetMapper.selectPartInfoFirstId(partInfo.getPiSeq()); + } + + public List selectTerminalName(PartWork partWork) { + return fipTargetMapper.selectTerminalName(partWork); + } + + @Transactional + public void savePartWork(PartWork partWork) { + PartWork dbPart = partWorkRepository.findTopByPiSeqOrderByPwSeqDesc(partWork.getPiSeq()); + if(dbPart == null) { + partWork.setPwSeq(1); + partWorkRepository.save(partWork); + } else { + partWork.setPwSeq(dbPart.getPwSeq()+1); + partWorkRepository.save(partWork); + } + if(partWork.getMultipartFileList()!= null){ + saveFilesUpload(partWork.getPwSeq(),partWork.getPiSeq(), partWork.getMultipartFileList()); + } + } + + private void saveFilesUpload(Integer pwSeq,Integer piSeq, List multipartFileList) { + PartWorkFile lastFileInfo = partWorkFileRepository.findTopByPwSeqAndPiSeqOrderByFileSeqDesc(pwSeq,piSeq); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+File.separator+"publicFile"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + PartWorkFile fileInfo = new PartWorkFile(); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setPwSeq(pwSeq); + fileInfo.setPiSeq(piSeq); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setFilePath(path); + partWorkFileRepository.save(fileInfo); + } + + } + + public List selectPartWorkList(PartWork partWork) { + return fipTargetMapper.selectPartWorkList(partWork); + } + + public Integer selectPartWorkListCnt(PartWork partWork) { + return fipTargetMapper.selectPartWorkListCnt(partWork); + } + + public PartWork selectPartWorkInfo(PartWork partWork) { + return fipTargetMapper.selectPartWorkInfo(partWork); + } + + public List selectPartWorkFile(PartWork partWork) { + return partWorkFileRepository.findByPwSeqAndPiSeqOrderByFileSeqAsc(partWork.getPwSeq(),partWork.getPiSeq()); + } + + @Transactional + public void updatePartWork(PartWork partWork, List deleteFileSeq) { + PartWork dbParkWork = partWorkRepository.findById(new PartWorkId(partWork.getPwSeq(),partWork.getPiSeq())).orElse(null); + partWork.setWrtNm(dbParkWork.getWrtNm()); + partWork.setWrtOrgan(dbParkWork.getWrtOrgan()); + partWork.setWrtPart(dbParkWork.getWrtPart()); + partWork.setWrtUserSeq(dbParkWork.getWrtUserSeq()); + partWorkRepository.save(partWork); + if(deleteFileSeq!=null && deleteFileSeq.size()>0){ + deletePartWorkFile(partWork, deleteFileSeq); + } + if(partWork.getMultipartFileList()!= null){ + saveFilesUpload(partWork.getPwSeq(),partWork.getPiSeq(), partWork.getMultipartFileList()); + } + } + + private void deletePartWorkFile(PartWork partWork, List deleteFileSeq) { + List partWorkFileList = partWorkFileRepository.findByPwSeqAndPiSeq(partWork.getPwSeq(),partWork.getPiSeq()); + for(PartWorkFile file: partWorkFileList ){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getFilePath(), file.getConvNm())); + partWorkFileRepository.delete(file); + } + } + } + + @Transactional + public void deletePartWork(PartWork partWork) { + //파일삭제 + List partWorkFileList= partWorkFileRepository.findByPwSeqAndPiSeq(partWork.getPwSeq(),partWork.getPiSeq()); + if(partWorkFileList != null) { + for(PartWorkFile file: partWorkFileList){ + deleteStoredFile(new File(file.getFilePath(), file.getConvNm())); + } + } + partWorkFileRepository.deleteByPwSeqAndPiSeq(partWork.getPwSeq(),partWork.getPiSeq()); + partWorkRepository.deleteByPwSeqAndPiSeq(partWork.getPwSeq(),partWork.getPiSeq()); + } + + public PartWorkFile selectPartWorkFileDown(Integer fileSeq, Integer pwSeq, Integer piSeq) { + return partWorkFileRepository.findById(new PartWorkFileId(fileSeq, pwSeq,piSeq)).orElse(null); + } + + public List selecetVulnOrganList(Vulnerable vulnerable) { + return fipTargetMapper.selecetVulnOrganList(vulnerable); + } + + @Transactional + public Integer saveVulnerable(Vulnerable vulnerable, List deleteFileSeq) { + Integer vulnKey = vulnRepository.save(vulnerable).getVulnKey(); + if(deleteFileSeq!=null && deleteFileSeq.size()>0){ + deleteVulnFile(vulnerable, deleteFileSeq); + } + if(vulnerable.getMultipartFileList()!= null){ + saveVulnerableFiles(vulnKey, vulnerable.getMultipartFileList()); + } + return vulnKey; + } + + private void saveVulnerableFiles(Integer vulnKey, List multipartFileList) { + VulnFile lastFileInfo = vulnFileRepository.findTopByVulnKeyOrderByFileSeqDesc(vulnKey); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+File.separator+"publicFile"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + VulnFile fileInfo = new VulnFile(); + fileInfo.setVulnKey(vulnKey); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setFilePath(path); + vulnFileRepository.save(fileInfo); + } + } + + private void deleteVulnFile(Vulnerable vulnerable, List deleteFileSeq) { + List VulnFileList = vulnFileRepository.findByVulnKey(vulnerable.getVulnKey()); + for(VulnFile file: VulnFileList ){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getFilePath(), file.getConvNm())); + vulnFileRepository.delete(file); + } + } + } + + public List selectVulnerableList(Vulnerable vulnerable) { + return fipTargetMapper.selectVulnerableList(vulnerable); + } + + public List selectVulnInfoList(Vulnerable vulnerable) { + return fipTargetMapper.selectVulnInfoList(vulnerable); + } + + public String selectOrganName(String mgtOrgan) { + return fipTargetMapper.selectOrganName(mgtOrgan); + } + + public Vulnerable selectVulnInfo(Vulnerable vulnerable) { + return fipTargetMapper.selectVulnInfo(vulnerable); + } + + public List selectVulnFile(Integer vulnKey) { + return vulnFileRepository.findByVulnKeyOrderByFileSeq(vulnKey); + } + + public VulnFile selectVulnInfoFileDown(Integer fileSeq, Integer vulnKey) { + return vulnFileRepository.findById(new VulnFileId(fileSeq, vulnKey)).orElse(null); + } + + @Transactional + public void deleteVulnerable(Vulnerable vulnerable) { + //파일삭제 + List VulnFileList = vulnFileRepository.findByVulnKey(vulnerable.getVulnKey()); + if(VulnFileList != null) { + for(VulnFile file: VulnFileList){ + deleteStoredFile(new File(file.getFilePath(), file.getConvNm())); + } + } + vulnFileRepository.deleteByVulnKey(vulnerable.getVulnKey()); + vulnRepository.deleteById(vulnerable.getVulnKey()); + } + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java new file mode 100644 index 0000000..c6833ec --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java @@ -0,0 +1,231 @@ +package com.dbnt.faisp.fpiMgt.affair; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import com.dbnt.faisp.fpiMgt.affair.model.AffairRating; +import com.dbnt.faisp.fpiMgt.affair.service.AffairService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/affair") +public class AffairController { // 첩보수집활동 > 외사경찰 견문관리 > 견문관리 + private final AffairService affairService; + private final AuthMgtService authMgtService; + private final CodeMgtService codeMgtService; + + @GetMapping("/affairMgt") + public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav; + if(affairBoard.getDashboardFlag()){ + mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgtDashboard"); + affairBoard.setRowCnt(5); + }else{ + mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt"); + } + mav.addObject("page", "main"); + mav.addObject("searchUrl", "/affair/affairMgt"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList + (loginUser.getUserSeq(), "/affair/affairMgt?affairCategory="+affairBoard.getAffairCategory()).get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 + affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList + (loginUser.getUserSeq(), "/affair/affairMgt?affairCategory="+affairBoard.getAffairCategory()).get(0).getApprovalAuth(); + affairBoard.setRatingOrgan(loginUser.getOgCd()); + + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + affairBoard.setQueryInfo(); + mav.addObject("affairList", affairService.selectAffairBoardList(affairBoard)); + affairBoard.setContentCnt(affairService.selectAffairBoardListCnt(affairBoard)); + affairBoard.setPaginationInfo(); + mav.addObject("searchParams", affairBoard); + return mav; + } + + @GetMapping("/stayPage") + public ModelAndView apprvStayPage(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt"); + mav.addObject("page", "stay"); + mav.addObject("searchUrl", "/affair/stayPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList + (loginUser.getUserSeq(), "/affair/affairMgt?affairCategory="+affairBoard.getAffairCategory()).get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList + (loginUser.getUserSeq(), "/affair/affairMgt?affairCategory="+affairBoard.getAffairCategory()).get(0).getApprovalAuth(); + affairBoard.setRatingOrgan(loginUser.getOgCd()); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + affairBoard.setUserType("normalStayList"); + }else{ + affairBoard.setUserType("managerStayList"); + } + }else{ + mav.addObject("userNm", loginUser.getUserNm()); + switch (apprvAuth){ + case "APC004": // 계장대행 + case "APC003": // 계장 // 결재대기 문서 조회 + affairBoard.setAffairStatus("DST002"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 계장승인 문서 조회 + affairBoard.setAffairStatus("DST004"); + break; + } + } + mav.addObject("userOrgan", loginUser.getOgCd()); + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + affairBoard.setQueryInfo(); + mav.addObject("affairList", affairService.selectAffairBoardList(affairBoard)); + affairBoard.setContentCnt(affairService.selectAffairBoardListCnt(affairBoard)); + affairBoard.setPaginationInfo(); + mav.addObject("searchParams", affairBoard); + mav.addObject("ratingCodeList", codeMgtService.selectCodeMgtList("AAR")); + return mav; + } + + @GetMapping("/commitPage") + public ModelAndView apprvCommitPage(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt"); + mav.addObject("page", "commit"); + mav.addObject("searchUrl", "/affair/commitPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList + (loginUser.getUserSeq(), "/affair/affairMgt?affairCategory="+affairBoard.getAffairCategory()).get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList + (loginUser.getUserSeq(), "/affair/affairMgt?affairCategory="+affairBoard.getAffairCategory()).get(0).getApprovalAuth(); + affairBoard.setRatingOrgan(loginUser.getOgCd()); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + affairBoard.setUserType("normalCommitList"); + }else{ + affairBoard.setUserType("managerCommitList"); + } + }else{ + switch (apprvAuth) { + case "APC004": // 계장대행 + case "APC003": // 계장 // 계장반려, 계장승인 문서 조회 + affairBoard.setUserType("sectionCommitList"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 부장반려, 부장승인 문서 조회 + affairBoard.setUserType("headCommitList"); + break; + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + affairBoard.setQueryInfo(); + mav.addObject("affairList", affairService.selectAffairBoardList(affairBoard)); + affairBoard.setContentCnt(affairService.selectAffairBoardListCnt(affairBoard)); + affairBoard.setPaginationInfo(); + mav.addObject("searchParams", affairBoard); + return mav; + } + + @GetMapping("/affairEditModal") + public ModelAndView affairEditModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairEditModal"); + if(affairBoard.getAffairKey()!=null){ + affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey()); + for(AffairRating rating: affairBoard.getRateList()){ + if(rating.getRatingOrgan().equals(loginUser.getOgCd())){ + affairBoard.setAffairStatus(rating.getAffairStatus()); + } + } + }else{ + affairBoard.setWrtOrgan(loginUser.getOgCd()); + affairBoard.setWrtPart(loginUser.getOfcCd()); + affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + affairBoard.setWrtUserNm(loginUser.getUserNm()); + affairBoard.setWrtDt(LocalDateTime.now()); + affairBoard.setReportDt(LocalDate.now()); + } + mav.addObject("affair", affairBoard); + return mav; + } + + @GetMapping("/affairViewModal") + public ModelAndView affairViewModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairViewModal"); + affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey()); + for(AffairRating rating: affairBoard.getRateList()){ + if(rating.getRatingOrgan().equals(loginUser.getOgCd())){ + affairBoard.setAffairStatus(rating.getAffairStatus()); + } + } + mav.addObject("affair", affairBoard); + mav.addObject("userSeq",loginUser.getUserSeq()); + mav.addObject("userOrgan", loginUser.getOgCd()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList + (loginUser.getUserSeq(), "/affair/affairMgt?affairCategory="+affairBoard.getAffairCategory()).get(0).getAccessAuth()); + String apprvAuth = authMgtService.selectApprovalConfigList + (loginUser.getUserSeq(), "/affair/affairMgt?affairCategory="+affairBoard.getAffairCategory()).get(0).getApprovalAuth(); + mav.addObject("apprvAuth", apprvAuth); + if(apprvAuth!=null && (apprvAuth.equals("APC002") || apprvAuth.equals("APC001"))){ + mav.addObject("ratingCodeList", codeMgtService.selectCodeMgtList("AAR")); + } + return mav; + } + + @PostMapping("/saveAffair") + public Integer saveAffair(AffairBoard affairBoard, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List deleteFileSeq){ + affairBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + return affairService.saveAffairBoard(affairBoard, deleteFileSeq); + } + + @PostMapping("/affairStateChange") + @ResponseBody + public Integer affairStateChange(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List ratingList){ + return affairService.affairStateChange(loginUser, ratingList); + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java new file mode 100644 index 0000000..b104f25 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java @@ -0,0 +1,16 @@ +package com.dbnt.faisp.fpiMgt.affair.mapper; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface AffairMapper { + + List selectAffairBoardList(AffairBoard affair); + + Integer selectAffairBoardCnt(AffairBoard affair); + + String selectHashTags(Integer affairKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java new file mode 100644 index 0000000..059cb69 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java @@ -0,0 +1,87 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "affair_board") +public class AffairBoard extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "affair_key") + private Integer affairKey; + @Column(name = "affair_type1") + private String affairType1; + @Column(name = "affair_type2") + private String affairType2; + @Column(name = "affair_type3") + private String affairType3; + @Column(name = "affair_type4") + private String affairType4; + @Column(name = "title") + private String title; + @Column(name = "content") + private String content; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_nm") + private String wrtUserNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "etc") + private String etc; + @Column(name = "report_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate reportDt; + @Column(name = "auto_delete") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate autoDelete; + @Column(name = "view_status") + private String viewStatus; + @Column(name = "affair_category") + private String affairCategory; + + @Transient + private String organUp; + @Transient + private String affairRate; + @Transient + private String affairStatus; + @Transient + private String ratingOrgan; + + @Transient + private String hashTags; + @Transient + private Integer fileCnt; + @Transient + private String userType; + @Transient + private List fileList; + @Transient + private List rateList; + @Transient + private List multipartFileList; + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairFile.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairFile.java new file mode 100644 index 0000000..e8ac62c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairFile.java @@ -0,0 +1,47 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "affair_file") +@IdClass(AffairFile.AffairFileId.class) +public class AffairFile extends FileInfo { + @Id + @Column(name = "affair_key") + private Integer affairKey; + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "save_path") + private String savePath; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class AffairFileId implements Serializable { + private Integer affairKey; + private Integer fileSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java new file mode 100644 index 0000000..f6b595a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java @@ -0,0 +1,59 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "affair_rating") +@IdClass(AffairRating.AffairRatingId.class) +public class AffairRating{ + @Id + @Column(name = "affair_key") + private Integer affairKey; + @Id + @Column(name = "rating_organ") + private String ratingOrgan; + @Column(name = "section_nm") + private String sectionNm; + @Column(name = "section_apprv_dt") + private LocalDateTime sectionApprvDt; + @Column(name = "section_apprv") + private String sectionApprv; + @Column(name = "section_etc") + private String sectionEtc; + @Column(name = "head_nm") + private String headNm; + @Column(name = "head_apprv_dt") + private LocalDateTime headApprvDt; + @Column(name = "head_apprv") + private String headApprv; + @Column(name = "head_etc") + private String headEtc; + @Column(name = "affair_rate") + private String affairRate; + @Column(name = "organ_up") + private String organUp; + @Column(name = "affair_status") + private String affairStatus; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class AffairRatingId implements Serializable { + private Integer affairKey; + private String ratingOrgan; + } + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java new file mode 100644 index 0000000..3967365 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java @@ -0,0 +1,26 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "hash_tag") +public class HashTag{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "tag_key") + private Integer tagKey; + @Column(name = "tag_nm") + private String tagNm; + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTagLink.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTagLink.java new file mode 100644 index 0000000..5470a72 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTagLink.java @@ -0,0 +1,37 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "hash_tag_link") +@IdClass(HashTagLink.HashTagLinkId.class) +public class HashTagLink extends FileInfo { + @Id + @Column(name = "affair_key") + private Integer affairKey; + @Id + @Column(name = "tag_key") + private Integer tagKey; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class HashTagLinkId implements Serializable { + private Integer affairKey; + private Integer tagKey; + } + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairBoardRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairBoardRepository.java new file mode 100644 index 0000000..36d44c2 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairBoardRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface AffairBoardRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairFileRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairFileRepository.java new file mode 100644 index 0000000..1311a1d --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairFileRepository.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairFile; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface AffairFileRepository extends JpaRepository { + List findByAffairKey(Integer affairKey); + Optional findTopByAffairKeyOrderByFileSeqDesc(Integer planKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java new file mode 100644 index 0000000..8979863 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java @@ -0,0 +1,11 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairRating; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface AffairRatingRepository extends JpaRepository { + List findByAffairKeyOrderByRatingOrganAsc(Integer affairKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java new file mode 100644 index 0000000..5c0b308 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.HashTagLink; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface HashTagLinkRepository extends JpaRepository { + void deleteByAffairKey(Integer affairKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java new file mode 100644 index 0000000..bdc5315 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java @@ -0,0 +1,12 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.HashTag; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + + +public interface HashTagRepository extends JpaRepository { + + Optional findByTagNm(String tagNm); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java new file mode 100644 index 0000000..b206564 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java @@ -0,0 +1,159 @@ +package com.dbnt.faisp.fpiMgt.affair.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; +import com.dbnt.faisp.fpiMgt.affair.mapper.AffairMapper; +import com.dbnt.faisp.fpiMgt.affair.model.*; +import com.dbnt.faisp.fpiMgt.affair.repository.*; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; + +@Service +@RequiredArgsConstructor +public class AffairService extends BaseService { // 견문보고 + private final AffairBoardRepository affairBoardRepository; + private final AffairFileRepository affairFileRepository; + private final AffairRatingRepository affairRatingRepository; + private final HashTagRepository hashTagRepository; + private final HashTagLinkRepository hashTagLinkRepository; + private final AffairMapper affairMapper; + + public List selectAffairBoardList(AffairBoard affair){ + return affairMapper.selectAffairBoardList(affair); + } + public Integer selectAffairBoardListCnt(AffairBoard affair){ + return affairMapper.selectAffairBoardCnt(affair); + } + + public AffairBoard selectAffairBoard(Integer affairKey){ + AffairBoard affair = affairBoardRepository.findById(affairKey).orElse(null); + if(affair != null){ + affair.setHashTags(affairMapper.selectHashTags(affairKey)); + affair.setFileList(affairFileRepository.findByAffairKey(affairKey)); + affair.setRateList(affairRatingRepository.findByAffairKeyOrderByRatingOrganAsc(affairKey)); + } + return affair; + } + @Transactional + public Integer saveAffairBoard(AffairBoard affair, List deleteFileSeq){ + Integer affairKey = affairBoardRepository.save(affair).getAffairKey(); + String[] hashTagAry = affair.getHashTags().split(" "); + if(hashTagAry.length>0){ + saveHashTagLink(affairKey, hashTagAry); + } + if(deleteFileSeq != null && deleteFileSeq.size()>0){ + deleteAffairFile(affairKey, deleteFileSeq); + } + if(affair.getMultipartFileList()!=null){ + saveUploadFiles(affairKey, affair.getMultipartFileList()); + } + + AffairRating rating = affairRatingRepository.findById(new AffairRating.AffairRatingId(affairKey,affair.getWrtOrgan())).orElse(null); + if(rating == null){ + rating = new AffairRating(); + rating.setAffairKey(affairKey); + rating.setRatingOrgan(affair.getWrtOrgan()); + } + rating.setAffairStatus(affair.getAffairStatus()); + affairRatingRepository.save(rating); + + return affairKey; + } + + private void saveHashTagLink(Integer affairKey, String[] hashTagAry){ + hashTagLinkRepository.deleteByAffairKey(affairKey); + for(String tagNm : hashTagAry){ + HashTag savedTag = hashTagRepository.findByTagNm(tagNm).orElse(null); + Integer tagKey; + if(savedTag==null){ + HashTag tag = new HashTag(); + tag.setTagNm(tagNm); + tagKey = hashTagRepository.save(tag).getTagKey(); + }else{ + tagKey = savedTag.getTagKey(); + } + HashTagLink hashTagLink = new HashTagLink(); + hashTagLink.setAffairKey(affairKey); + hashTagLink.setTagKey(tagKey); + hashTagLinkRepository.save(hashTagLink); + } + } + private void deleteAffairFile(Integer affairKey, List deleteFileSeq) { + List affairFileList = affairFileRepository.findByAffairKey(affairKey); + for(AffairFile file: affairFileList){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getSavePath(), file.getConvNm())); + affairFileRepository.delete(file); + } + } + } + private void saveUploadFiles(Integer affairKey, List multipartFileList){ + AffairFile lastFileInfo = affairFileRepository.findTopByAffairKeyOrderByFileSeqDesc(affairKey).orElse(null); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+File.separator+"affair"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + AffairFile fileInfo = new AffairFile(); + fileInfo.setAffairKey(affairKey); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setSavePath(path); + affairFileRepository.save(fileInfo); + } + } + + @Transactional + public Integer affairStateChange(UserInfo loginUser, List ratingList) { + for(AffairRating rating : ratingList){ + AffairRating savedRating = affairRatingRepository.findById(new AffairRating.AffairRatingId(rating.getAffairKey(), loginUser.getOgCd())).orElse(null); + if(savedRating != null){ + if(rating.getHeadApprv() == null){ + savedRating.setSectionNm(loginUser.getUserNm()); + savedRating.setSectionApprvDt(LocalDateTime.now()); + savedRating.setSectionApprv(rating.getSectionApprv()); + savedRating.setSectionEtc(rating.getSectionEtc()); + savedRating.setAffairStatus(rating.getSectionApprv()); + }else{ + savedRating.setHeadNm(loginUser.getUserNm()); + savedRating.setHeadApprvDt(LocalDateTime.now()); + savedRating.setHeadApprv(rating.getHeadApprv()); + savedRating.setHeadEtc(rating.getHeadEtc()); + savedRating.setAffairRate(rating.getAffairRate()); + savedRating.setOrganUp(rating.getOrganUp()==null?"F":rating.getOrganUp()); + savedRating.setAffairStatus(rating.getHeadApprv()); + if(savedRating.getOrganUp().equals("T")){ + List organList = loginUser.getUpOrganCdList(); + String upOrgan = organList.get(organList.indexOf(savedRating.getRatingOrgan())-1); + AffairRating upRating = new AffairRating(); + upRating.setRatingOrgan(upOrgan); + upRating.setAffairKey(savedRating.getAffairKey()); + upRating.setAffairStatus("DST002"); + affairRatingRepository.save(upRating); + } + } + affairRatingRepository.save(savedRating); + } + } + return ratingList.size()>1?0:ratingList.get(0).getAffairKey(); + } + + public FileInfo selectAffairFile(Integer parentKey, Integer fileSeq) { + return affairFileRepository.findById(new AffairFile.AffairFileId(parentKey, fileSeq)).orElse(null); + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/PlanController.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/PlanController.java new file mode 100644 index 0000000..a11d0ab --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/PlanController.java @@ -0,0 +1,204 @@ +package com.dbnt.faisp.fpiMgt.affairPlan; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; +import com.dbnt.faisp.fpiMgt.affairPlan.service.PlanService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/affairPlan") +public class PlanController { // 첩보수집활동 > 외사경찰 견문관리 > 계획수립 + private final PlanService planService; + private final AuthMgtService authMgtService; + + @GetMapping("/planMgt") + public ModelAndView monthPlanPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ + ModelAndView mav = null; + if(planBoard.getDashboardFlag()){ + mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgtDashboard"); + planBoard.setRowCnt(5); + }else{ + mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt"); + } + mav.addObject("page", "main"); + mav.addObject("searchUrl", "/affairPlan/planMgt"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신이 작성한 문서만 열람가능 + planBoard.setWrtUserSeq(loginUser.getUserSeq()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + planBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + planBoard.setQueryInfo(); + mav.addObject("planList", planService.selectPlanBoardList(planBoard)); + planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); + planBoard.setPaginationInfo(); + mav.addObject("searchParams", planBoard); + return mav; + } + + @GetMapping("/stayPage") + public ModelAndView apprvStayPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt"); + mav.addObject("page", "stay"); + mav.addObject("searchUrl", "/affairPlan/stayPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + planBoard.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + planBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + planBoard.setWrtUserSeq(loginUser.getUserSeq()); + planBoard.setUserType("normalStayList"); + }else{ + planBoard.setUserType("managerStayList"); + } + }else{ + mav.addObject("userNm", loginUser.getUserNm()); + switch (apprvAuth){ + case "APC004": // 계장대행 + case "APC003": // 계장 // 결재대기 문서 조회 + planBoard.setPlanState("DST002"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 계장승인 문서 조회 + planBoard.setPlanState("DST004"); + break; + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + planBoard.setQueryInfo(); + mav.addObject("planList", planService.selectPlanBoardList(planBoard)); + planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); + planBoard.setPaginationInfo(); + mav.addObject("searchParams", planBoard); + return mav; + } + + @GetMapping("/commitPage") + public ModelAndView apprvCommitPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt"); + mav.addObject("page", "commit"); + mav.addObject("searchUrl", "/affairPlan/commitPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + planBoard.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + planBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + planBoard.setWrtUserSeq(loginUser.getUserSeq()); + planBoard.setUserType("normalCommitList"); + }else{ + planBoard.setUserType("managerCommitList"); + } + }else{ + switch (apprvAuth) { + case "APC004": // 계장대행 + case "APC003": // 계장 // 계장반려, 계장승인 문서 조회 + planBoard.setUserType("sectionCommitList"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 부장반려, 부장승인 문서 조회 + planBoard.setUserType("headCommitList"); + break; + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + planBoard.setQueryInfo(); + mav.addObject("planList", planService.selectPlanBoardList(planBoard)); + planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); + planBoard.setPaginationInfo(); + mav.addObject("searchParams", planBoard); + return mav; + } + + @GetMapping("/planEditModal") + public ModelAndView planEditModal(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planEditModal"); + if(planBoard.getPlanKey()!=null){ + planBoard = planService.selectPlanBoard(planBoard.getPlanKey()); + }else{ + planBoard.setWrtOrgan(loginUser.getOgCd()); + planBoard.setWrtPart(loginUser.getOfcCd()); + planBoard.setWrtUserSeq(loginUser.getUserSeq()); + planBoard.setWrtUserNm(loginUser.getUserNm()); + planBoard.setWrtDt(LocalDateTime.now()); + } + mav.addObject("plan", planBoard); + return mav; + } + + @GetMapping("/planViewModal") + public ModelAndView planViewModal(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planViewModal"); + planBoard = planService.selectPlanBoard(planBoard.getPlanKey()); + mav.addObject("plan", planBoard); + mav.addObject("userSeq",loginUser.getUserSeq()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth()); + mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth()); + return mav; + } + + @PostMapping("/savePlan") + public Integer savePlan(PlanBoard planBoard, + @RequestParam(value = "planInfos", required = false) List planInfos, + @RequestParam(value = "detailPlanInfos", required = false)List detailPlanInfos, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List deleteFileSeq){ + planBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + return planService.savePlanBoard(planBoard, planInfos, detailPlanInfos, deleteFileSeq); + } + + + @PostMapping("/planStateChange") + public Integer planStateChange(@AuthenticationPrincipal UserInfo loginUser, PlanApprv apprv){ + apprv.setUserSeq(loginUser.getUserSeq()); + apprv.setUserNm(loginUser.getUserNm()); + apprv.setSaveDt(LocalDateTime.now()); + return planService.planStateChange(apprv); + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/mapper/PlanMapper.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/mapper/PlanMapper.java new file mode 100644 index 0000000..9e0e414 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/mapper/PlanMapper.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.mapper; + +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface PlanMapper { + + List selectPlanBoardList(PlanBoard planBoard); + + Integer selectPlanBoardListCnt(PlanBoard planBoard); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanApprv.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanApprv.java new file mode 100644 index 0000000..88885a5 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanApprv.java @@ -0,0 +1,45 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "plan_apprv") +@IdClass(PlanApprv.PlanApprvId.class) +public class PlanApprv { + @Id + @Column(name = "plan_key") + private Integer planKey; + @Id + @Column(name = "apprv_seq") + private Integer apprvSeq; + @Column(name = "state") + private String state; + @Column(name = "user_seq") + private Integer userSeq; + @Column(name = "user_nm") + private String userNm; + @Column(name = "etc") + private String etc; + @Column(name = "save_dt") + private LocalDateTime saveDt; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class PlanApprvId implements Serializable { + private Integer planKey; + private Integer apprvSeq; + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanBoard.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanBoard.java new file mode 100644 index 0000000..084c461 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanBoard.java @@ -0,0 +1,61 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "plan_board") +public class PlanBoard extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "plan_key") + private Integer planKey; + @Column(name = "content_title") + private String contentTitle; + @Column(name = "plan_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate planDt; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_nm") + private String wrtUserNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + @Column(name = "plan_state") + private String planState; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + + @Transient + private String userType; + @Transient + private Integer fileCnt; + @Transient + private List mainInfoList; + @Transient + private List apprvList; + @Transient + private List fileList; + @Transient + private List multipartFileList; + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanFile.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanFile.java new file mode 100644 index 0000000..7d83834 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanFile.java @@ -0,0 +1,47 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "plan_file") +@IdClass(PlanFile.PlanFileId.class) +public class PlanFile extends FileInfo { + @Id + @Column(name = "plan_key") + private Integer planKey; + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "save_path") + private String savePath; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class PlanFileId implements Serializable { + private Integer planKey; + private Integer fileSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanMainInfo.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanMainInfo.java new file mode 100644 index 0000000..c003ebd --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanMainInfo.java @@ -0,0 +1,38 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "plan_main_info") +@IdClass(PlanMainInfo.PlanMainInfoId.class) +public class PlanMainInfo { + @Id + @Column(name = "plan_key") + private Integer planKey; + @Id + @Column(name = "plan_seq") + private Integer planSeq; + @Column(name = "plan_type") + private String planType; + @Column(name = "plan_info") + private String planInfo; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class PlanMainInfoId implements Serializable { + private Integer planKey; + private Integer planSeq; + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanApprvRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanApprvRepository.java new file mode 100644 index 0000000..ec760b8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanApprvRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.repository; + +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface PlanApprvRepository extends JpaRepository { + Optional findTopByPlanKeyOrderByApprvSeqDesc(Integer planKey); + + List findByPlanKey(Integer planKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanBoardRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanBoardRepository.java new file mode 100644 index 0000000..7ea9112 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanBoardRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.repository; + +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface PlanBoardRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanFileRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanFileRepository.java new file mode 100644 index 0000000..039fdf8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanFileRepository.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.repository; + +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanFile; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface PlanFileRepository extends JpaRepository { + List findByPlanKey(Integer planKey); + Optional findTopByPlanKeyOrderByFileSeqDesc(Integer planKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanMainInfoRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanMainInfoRepository.java new file mode 100644 index 0000000..b3683e9 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanMainInfoRepository.java @@ -0,0 +1,11 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.repository; + +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanMainInfo; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface PlanMainInfoRepository extends JpaRepository { + List findByPlanKey(Integer planKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/service/PlanService.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/service/PlanService.java new file mode 100644 index 0000000..93853b0 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/service/PlanService.java @@ -0,0 +1,123 @@ +package com.dbnt.faisp.fpiMgt.affairPlan.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; +import com.dbnt.faisp.fpiMgt.affairPlan.mapper.PlanMapper; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanFile; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanMainInfo; +import com.dbnt.faisp.fpiMgt.affairPlan.repository.PlanApprvRepository; +import com.dbnt.faisp.fpiMgt.affairPlan.repository.PlanBoardRepository; +import com.dbnt.faisp.fpiMgt.affairPlan.repository.PlanFileRepository; +import com.dbnt.faisp.fpiMgt.affairPlan.repository.PlanMainInfoRepository; +import com.dbnt.faisp.fpiMgt.affairResult.repository.ClearInfoRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.List; +import java.util.UUID; + +@Service +@RequiredArgsConstructor +public class PlanService extends BaseService { // 월간계획 + private final PlanBoardRepository planBoardRepository; + private final PlanFileRepository planFileRepository; + private final PlanMainInfoRepository planMainInfoRepository; + private final PlanApprvRepository planApprvRepository; + private final PlanMapper planMapper; + + public List selectPlanBoardList(PlanBoard planBoard) { + return planMapper.selectPlanBoardList(planBoard); + } + + public Integer selectPlanBoardListCnt(PlanBoard planBoard) { + return planMapper.selectPlanBoardListCnt(planBoard); + } + + public PlanBoard selectPlanBoard(Integer planKey) { + PlanBoard savedPlan = planBoardRepository.findById(planKey).orElse(null); + if (savedPlan != null) { + savedPlan.setFileList(planFileRepository.findByPlanKey(planKey)); + savedPlan.setMainInfoList(planMainInfoRepository.findByPlanKey(planKey)); + savedPlan.setApprvList(planApprvRepository.findByPlanKey(planKey)); + } + return savedPlan; + } + + @Transactional + public Integer savePlanBoard(PlanBoard planBoard, List planInfos, List detailPlanInfos, List deleteFileSeq) { + Integer planKey = planBoardRepository.save(planBoard).getPlanKey(); + Integer infoSeq = savePlanMainInfos(planKey,0, "S", planInfos);//요약 summery + savePlanMainInfos(planKey, infoSeq, "D", detailPlanInfos);//상세 detail + if(deleteFileSeq != null && deleteFileSeq.size()>0){ + deletePlanFile(planKey, deleteFileSeq); + } + if(planBoard.getMultipartFileList()!=null){ + saveUploadFiles(planKey, planBoard.getMultipartFileList()); + } + return planKey; + } + + private Integer savePlanMainInfos(Integer planKey, Integer planSeq, String infoType, List infoList){ + for(String info: infoList){ + PlanMainInfo planMainInfo = new PlanMainInfo(); + planMainInfo.setPlanKey(planKey); + planMainInfo.setPlanSeq(++planSeq); + planMainInfo.setPlanType(infoType); + planMainInfo.setPlanInfo(info); + planMainInfoRepository.save(planMainInfo); + } + return planSeq; + } + + private void saveUploadFiles(Integer planKey, List multipartFileList){ + PlanFile lastFileInfo = planFileRepository.findTopByPlanKeyOrderByFileSeqDesc(planKey).orElse(null); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+File.separator+"monthPlan"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + PlanFile fileInfo = new PlanFile(); + fileInfo.setPlanKey(planKey); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setSavePath(path); + planFileRepository.save(fileInfo); + } + } + + private void deletePlanFile(Integer planKey, List deleteFileSeq) { + List planFileList = planFileRepository.findByPlanKey(planKey); + for(PlanFile file: planFileList){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getSavePath(), file.getConvNm())); + planFileRepository.delete(file); + } + } + } + + public FileInfo selectPlanFile(Integer planKey, Integer fileSeq) { + return planFileRepository.findById(new PlanFile.PlanFileId(planKey, fileSeq)).orElse(null); + } + + @Transactional + public Integer planStateChange(PlanApprv apprv) { + PlanBoard savedPlan = planBoardRepository.findById(apprv.getPlanKey()).orElse(null); + savedPlan.setPlanState(apprv.getState()); + PlanApprv lastApprv = planApprvRepository.findTopByPlanKeyOrderByApprvSeqDesc(apprv.getPlanKey()).orElse(null); + apprv.setApprvSeq(lastApprv==null?1:lastApprv.getApprvSeq()+1); + planApprvRepository.save(apprv); + return apprv.getApprvSeq(); + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/ResultController.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/ResultController.java new file mode 100644 index 0000000..b152f61 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/ResultController.java @@ -0,0 +1,236 @@ +package com.dbnt.faisp.fpiMgt.affairResult; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import com.dbnt.faisp.fpiMgt.affair.service.AffairService; +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultApprv; +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultBoard; +import com.dbnt.faisp.fpiMgt.affairResult.model.ClearInfo; +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultInfo; +import com.dbnt.faisp.fpiMgt.affairResult.service.ResultService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/affairResult") +public class ResultController { // 첩보수집활동 > 외사경찰 견문관리 > 계획수립 + private final ResultService resultService; + private final AffairService affairService; + private final AuthMgtService authMgtService; + private final CodeMgtService codeMgtService; + + @GetMapping("/resultMgt") + public ModelAndView resultMgtPage(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){ + ModelAndView mav = null; + if(resultBoard.getDashboardFlag()){ + mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultMgtDashboard"); + resultBoard.setRowCnt(5); + }else{ + mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultMgt"); + } + mav.addObject("page", "main"); + mav.addObject("searchUrl", "/affairResult/resultMgt"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신이 작성한 문서만 열람가능 + resultBoard.setWrtUserSeq(loginUser.getUserSeq()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + resultBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + resultBoard.setQueryInfo(); + mav.addObject("resultList", resultService.selectResultBoardList(resultBoard)); + resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard)); + resultBoard.setContentCnt(0); + resultBoard.setPaginationInfo(); + mav.addObject("searchParams", resultBoard); + return mav; + } + + @GetMapping("/stayPage") + public ModelAndView apprvStayPage(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultMgt"); + mav.addObject("page", "stay"); + mav.addObject("searchUrl", "/affairResult/stayPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + resultBoard.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + resultBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth(); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + resultBoard.setWrtUserSeq(loginUser.getUserSeq()); + resultBoard.setUserType("normalStayList"); + }else{ + resultBoard.setUserType("managerStayList"); + } + }else{ + mav.addObject("userNm", loginUser.getUserNm()); + switch (apprvAuth){ + case "APC004": // 계장대행 + case "APC003": // 계장 // 결재대기 문서 조회 + resultBoard.setResultState("DST002"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 계장승인 문서 조회 + resultBoard.setResultState("DST004"); + break; + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + resultBoard.setQueryInfo(); + mav.addObject("resultList", resultService.selectResultBoardList(resultBoard)); + resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard)); + resultBoard.setPaginationInfo(); + mav.addObject("searchParams", resultBoard); + return mav; + } + + @GetMapping("/commitPage") + public ModelAndView apprvCommitPage(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultMgt"); + mav.addObject("page", "commit"); + mav.addObject("searchUrl", "/affairResult/commitPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + resultBoard.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + resultBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth(); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + resultBoard.setWrtUserSeq(loginUser.getUserSeq()); + resultBoard.setUserType("normalCommitList"); + }else{ + resultBoard.setUserType("managerCommitList"); + } + }else{ + switch (apprvAuth) { + case "APC004": // 계장대행 + case "APC003": // 계장 // 계장반려, 계장승인 문서 조회 + resultBoard.setUserType("sectionCommitList"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 부장반려, 부장승인 문서 조회 + resultBoard.setUserType("headCommitList"); + break; + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + resultBoard.setQueryInfo(); + mav.addObject("resultList", resultService.selectResultBoardList(resultBoard)); + resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard)); + resultBoard.setPaginationInfo(); + mav.addObject("searchParams", resultBoard); + return mav; + } + + @GetMapping("/resultEditModal") + public ModelAndView resultEditModal(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultEditModal"); + if(resultBoard.getResultKey()!=null){ + resultBoard = resultService.selectResultBoard(resultBoard.getResultKey()); + }else{ + resultBoard.setWrtOrgan(loginUser.getOgCd()); + resultBoard.setWrtPart(loginUser.getOfcCd()); + resultBoard.setWrtUserSeq(loginUser.getUserSeq()); + resultBoard.setWrtUserNm(loginUser.getUserNm()); + resultBoard.setWrtDt(LocalDateTime.now()); + } + mav.addObject("result", resultBoard); + mav.addObject("categoryList", codeMgtService.selectCodeMgtList("RIC")); + mav.addObject("codeList", codeMgtService.selectCodeMgtList("RID")); + return mav; + } + + @GetMapping("/affairListModal") + public ModelAndView affairListModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affair){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/affairListModal"); + affair.setWrtUserSeq(loginUser.getUserSeq()); + affair.setRatingOrgan(loginUser.getOgCd()); + affair.setFirstIndex(0); + affair.setRowCnt(9999); + mav.addObject("affairList", affairService.selectAffairBoardList(affair)); + return mav; + } + + @GetMapping("/resultViewModal") + public ModelAndView resultViewModal(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultViewModal"); + resultBoard = resultService.selectResultBoard(resultBoard.getResultKey()); + mav.addObject("result", resultBoard); + mav.addObject("userSeq",loginUser.getUserSeq()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth()); + mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth()); + return mav; + } + + @PostMapping("/saveResult") + public Integer saveResult(ResultBoard resultBoard, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List deleteFileSeq){ + resultBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + return resultService.saveResultBoard(resultBoard, deleteFileSeq); + } + + + @PostMapping("/resultStateChange") + public Integer resultStateChange(@AuthenticationPrincipal UserInfo loginUser, ResultApprv apprv){ + apprv.setUserSeq(loginUser.getUserSeq()); + apprv.setUserNm(loginUser.getUserNm()); + apprv.setSaveDt(LocalDateTime.now()); + return resultService.resultStateChange(apprv); + } + + @GetMapping("/getClearInfoRow") + public ModelAndView getClearInfoRow(ClearInfo info){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/clearInfoRow"); + mav.addObject("info", info); + mav.addObject("categoryList", codeMgtService.selectCodeMgtList("RIC")); + mav.addObject("codeList", codeMgtService.selectCodeMgtList("RID")); + return mav; + } + @GetMapping("/getResultInfoRow") + public ModelAndView getResultInfoRow(ResultInfo info){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultInfoRow"); + mav.addObject("info", info); + return mav; + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/mapper/ResultMapper.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/mapper/ResultMapper.java new file mode 100644 index 0000000..b24687f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/mapper/ResultMapper.java @@ -0,0 +1,18 @@ +package com.dbnt.faisp.fpiMgt.affairResult.mapper; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultBoard; +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultToAffair; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ResultMapper { + + List selectResultBoardList(ResultBoard resultBoard); + + Integer selectResultBoardListCnt(ResultBoard resultBoard); + + List selectAffairToResultKey(Integer resultKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ClearInfo.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ClearInfo.java new file mode 100644 index 0000000..6bb42d8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ClearInfo.java @@ -0,0 +1,41 @@ +package com.dbnt.faisp.fpiMgt.affairResult.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "clear_info") +@IdClass(ClearInfo.ClearInfoId.class) +public class ClearInfo { + @Id + @Column(name = "result_key") + private Integer resultKey; + @Id + @Column(name = "info_seq") + private Integer infoSeq; + @Column(name = "use_catg") + private String useCatg; + @Column(name = "use_detail") + private String useDetail; + @Column(name = "price") + private Double price; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ClearInfoId implements Serializable { + private Integer resultKey; + private Integer infoSeq; + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultApprv.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultApprv.java new file mode 100644 index 0000000..02bad24 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultApprv.java @@ -0,0 +1,45 @@ +package com.dbnt.faisp.fpiMgt.affairResult.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "result_apprv") +@IdClass(ResultApprv.ResultApprvId.class) +public class ResultApprv { + @Id + @Column(name = "result_key") + private Integer resultKey; + @Id + @Column(name = "apprv_seq") + private Integer apprvSeq; + @Column(name = "state") + private String state; + @Column(name = "user_seq") + private Integer userSeq; + @Column(name = "user_nm") + private String userNm; + @Column(name = "etc") + private String etc; + @Column(name = "save_dt") + private LocalDateTime saveDt; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ResultApprvId implements Serializable { + private Integer resultKey; + private Integer apprvSeq; + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultBoard.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultBoard.java new file mode 100644 index 0000000..2e0de92 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultBoard.java @@ -0,0 +1,91 @@ +package com.dbnt.faisp.fpiMgt.affairResult.model; + +import com.dbnt.faisp.config.BaseModel; +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "result_board") +public class ResultBoard extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "result_key") + private Integer resultKey; + @Column(name = "result_state") + private String resultState; + @Column(name = "clear_title") + private String clearTitle; + @Column(name = "result_title") + private String resultTitle; + @Column(name = "use_start_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate useStartDt; + @Column(name = "use_end_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate useEndDt; + @Column(name = "work_start_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate workStartDt; + @Column(name = "work_end_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate workEndDt; + @Column(name = "plan_price") + private Double planPrice; + @Column(name = "use_price") + private Double usePrice; + @Column(name="result_etc") + private String resultEtc; + @Column(name="clear_etc") + private String clearEtc; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_user_grd") + private String wrtUserGrd; + @Column(name = "wrt_user_nm") + private String wrtUserNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + + @Transient + private String userType; + @Transient + private Integer affairCnt; + @Transient + private Integer fileCnt; + @Transient + private List apprvList; + @Transient + private List fileList; + @Transient + private List multipartFileList; + @Transient + private List clearInfoList; + @Transient + private List resultInfoList; + @Transient + private List affairList; + @Transient + private List affairBoardList; +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultFile.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultFile.java new file mode 100644 index 0000000..56a792d --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultFile.java @@ -0,0 +1,49 @@ +package com.dbnt.faisp.fpiMgt.affairResult.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "result_file") +@IdClass(ResultFile.ResultFileId.class) +public class ResultFile extends FileInfo { + @Id + @Column(name = "result_key") + private Integer resultKey; + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Column(name = "file_type") + private String fileType; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "save_path") + private String savePath; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ResultFileId implements Serializable { + private Integer resultKey; + private Integer fileSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultInfo.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultInfo.java new file mode 100644 index 0000000..bb46353 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultInfo.java @@ -0,0 +1,38 @@ +package com.dbnt.faisp.fpiMgt.affairResult.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "result_info") +@IdClass(ResultInfo.ResultInfoId.class) +public class ResultInfo { + @Id + @Column(name = "result_key") + private Integer resultKey; + @Id + @Column(name = "info_seq") + private Integer infoSeq; + @Column(name = "contact_target") + private String contactTarget; + @Column(name = "contact_info") + private String contactInfo; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ResultInfoId implements Serializable { + private Integer resultKey; + private Integer infoSeq; + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultToAffair.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultToAffair.java new file mode 100644 index 0000000..d889614 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultToAffair.java @@ -0,0 +1,34 @@ +package com.dbnt.faisp.fpiMgt.affairResult.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "result_to_affair") +@IdClass(ResultToAffair.ResultToAffairId.class) +public class ResultToAffair { + @Id + @Column(name = "result_key") + private Integer resultKey; + @Id + @Column(name = "affair_key") + private Integer affairKey; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ResultToAffairId implements Serializable { + private Integer resultKey; + private Integer affairKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultToPlan.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultToPlan.java new file mode 100644 index 0000000..3b28401 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/model/ResultToPlan.java @@ -0,0 +1,34 @@ +package com.dbnt.faisp.fpiMgt.affairResult.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "result_info") +@IdClass(ResultToPlan.ResultToPlanId.class) +public class ResultToPlan { + @Id + @Column(name = "plan_key") + private Integer planKey; + @Id + @Column(name = "result_key") + private Integer resultKey; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ResultToPlanId implements Serializable { + private Integer planKey; + private Integer resultKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ClearInfoRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ClearInfoRepository.java new file mode 100644 index 0000000..30f9d7a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ClearInfoRepository.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.fpiMgt.affairResult.repository; + +import com.dbnt.faisp.fpiMgt.affairResult.model.ClearInfo; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface ClearInfoRepository extends JpaRepository { + void deleteByResultKey(Integer resultKey); + + List findByResultKey(Integer resultKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultApprvRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultApprvRepository.java new file mode 100644 index 0000000..8db6c39 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultApprvRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.fpiMgt.affairResult.repository; + +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultApprv; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface ResultApprvRepository extends JpaRepository { + Optional findTopByResultKeyOrderByApprvSeqDesc(Integer resultKey); + + List findByResultKey(Integer resultKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultBoardRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultBoardRepository.java new file mode 100644 index 0000000..0338ebb --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultBoardRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.fpiMgt.affairResult.repository; + +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultBoard; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface ResultBoardRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultFileRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultFileRepository.java new file mode 100644 index 0000000..a073001 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultFileRepository.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.fpiMgt.affairResult.repository; + +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultFile; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface ResultFileRepository extends JpaRepository { + List findByResultKey(Integer resultKey); + Optional findTopByResultKeyOrderByFileSeqDesc(Integer resultKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultInfoRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultInfoRepository.java new file mode 100644 index 0000000..9b4849b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultInfoRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.fpiMgt.affairResult.repository; + +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultInfo; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface ResultInfoRepository extends JpaRepository { + + void deleteByResultKey(Integer resultKey); + + List findByResultKey(Integer resultKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultToAffairRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultToAffairRepository.java new file mode 100644 index 0000000..23206f7 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultToAffairRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.fpiMgt.affairResult.repository; + +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultToAffair; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface ResultToAffairRepository extends JpaRepository { + + void deleteByResultKey(Integer resultKey); + + List findByResultKey(Integer resultKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultToPlanRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultToPlanRepository.java new file mode 100644 index 0000000..e35c5e1 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/repository/ResultToPlanRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.fpiMgt.affairResult.repository; + +import com.dbnt.faisp.fpiMgt.affairResult.model.ResultToPlan; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface ResultToPlanRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/service/ResultService.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/service/ResultService.java new file mode 100644 index 0000000..eaf2a7c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/service/ResultService.java @@ -0,0 +1,141 @@ +package com.dbnt.faisp.fpiMgt.affairResult.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; +import com.dbnt.faisp.fpiMgt.affairResult.mapper.ResultMapper; +import com.dbnt.faisp.fpiMgt.affairResult.model.*; +import com.dbnt.faisp.fpiMgt.affairResult.repository.*; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.List; +import java.util.UUID; + +@Service +@RequiredArgsConstructor +public class ResultService extends BaseService { // 월간계획 + private final ClearInfoRepository clearInfoRepository; + private final ResultApprvRepository resultApprvRepository; + private final ResultBoardRepository resultBoardRepository; + private final ResultFileRepository resultFileRepository; + private final ResultInfoRepository resultInfoRepository; + private final ResultToAffairRepository resultToAffairRepository; + private final ResultToPlanRepository resultToPlanRepository; + private final ResultMapper resultMapper; + + public List selectResultBoardList(ResultBoard resultBoard) { + return resultMapper.selectResultBoardList(resultBoard); + } + + public Integer selectResultBoardListCnt(ResultBoard resultBoard) { + return resultMapper.selectResultBoardListCnt(resultBoard); + } + + public ResultBoard selectResultBoard(Integer resultKey) { + ResultBoard savedResult = resultBoardRepository.findById(resultKey).orElse(null); + if (savedResult != null) { + savedResult.setFileList(resultFileRepository.findByResultKey(resultKey)); + savedResult.setApprvList(resultApprvRepository.findByResultKey(resultKey)); + savedResult.setClearInfoList(clearInfoRepository.findByResultKey(resultKey)); + savedResult.setResultInfoList(resultInfoRepository.findByResultKey(resultKey)); + savedResult.setAffairBoardList(resultMapper.selectAffairToResultKey(resultKey)); + } + return savedResult; + } + + @Transactional + public Integer saveResultBoard(ResultBoard resultBoard, List deleteFileSeq) { + Integer resultKey = resultBoardRepository.save(resultBoard).getResultKey(); + if(deleteFileSeq != null && deleteFileSeq.size()>0){ + deleteResultFile(resultKey, deleteFileSeq); + } + if(resultBoard.getMultipartFileList()!=null){ + saveUploadFiles(resultKey, resultBoard.getMultipartFileList()); + } + if (resultBoard.getClearInfoList() != null){ + saveClearInfoList(resultKey, resultBoard.getClearInfoList()); + } + if (resultBoard.getResultInfoList() != null){ + saveResultInfoList(resultKey, resultBoard.getResultInfoList()); + } + if (resultBoard.getAffairList() != null){ + saveResultToAffair(resultKey, resultBoard.getAffairList()); + } + return resultKey; + } + + public FileInfo selectResultFile(Integer resultKey, Integer fileSeq) { + return resultFileRepository.findById(new ResultFile.ResultFileId(resultKey, fileSeq)).orElse(null); + } + + @Transactional + public Integer resultStateChange(ResultApprv apprv) { + ResultBoard savedResult = resultBoardRepository.findById(apprv.getResultKey()).orElse(null); + savedResult.setResultState(apprv.getState()); + ResultApprv lastApprv = resultApprvRepository.findTopByResultKeyOrderByApprvSeqDesc(apprv.getResultKey()).orElse(null); + apprv.setApprvSeq(lastApprv==null?1:lastApprv.getApprvSeq()+1); + resultApprvRepository.save(apprv); + return apprv.getApprvSeq(); + } + + private void saveUploadFiles(Integer resultKey, List multipartFileList){ + ResultFile lastFileInfo = resultFileRepository.findTopByResultKeyOrderByFileSeqDesc(resultKey).orElse(null); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+File.separator+"affairResult"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + ResultFile fileInfo = new ResultFile(); + fileInfo.setResultKey(resultKey); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setSavePath(path); + resultFileRepository.save(fileInfo); + } + } + + private void deleteResultFile(Integer resultKey, List deleteFileSeq) { + List resultFileList = resultFileRepository.findByResultKey(resultKey); + for(ResultFile file: resultFileList){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getSavePath(), file.getConvNm())); + resultFileRepository.delete(file); + } + } + } + + + private void saveClearInfoList(Integer resultKey, List clearInfoList) { + clearInfoRepository.deleteByResultKey(resultKey); + for(ClearInfo info: clearInfoList){ + info.setResultKey(resultKey); + } + clearInfoRepository.saveAll(clearInfoList); + } + + private void saveResultInfoList(Integer resultKey, List resultInfoList){ + resultInfoRepository.deleteByResultKey(resultKey); + for(ResultInfo info: resultInfoList){ + info.setResultKey(resultKey); + } + resultInfoRepository.saveAll(resultInfoList); + } + + private void saveResultToAffair(Integer resultKey, List resultToAffairList){ + resultToAffairRepository.deleteByResultKey(resultKey); + for(ResultToAffair relation: resultToAffairList){ + relation.setResultKey(resultKey); + } + resultToAffairRepository.saveAll(resultToAffairList); + } +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/IvsgtController.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/IvsgtController.java new file mode 100644 index 0000000..f60cc05 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/IvsgtController.java @@ -0,0 +1,94 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.ArrestType; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.BoardInvestigation; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.RelatedReports; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.service.BoardInvestigationService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/ivsgt") +public class IvsgtController { + + private final AuthMgtService authMgtService; + private final BoardInvestigationService boardInvestigationService; + + @GetMapping("/{ivsgtType}") + public ModelAndView arrest(@AuthenticationPrincipal UserInfo loginUser, @PathVariable("ivsgtType") String ivsgtType,BoardInvestigation boardInvestigation) { + ModelAndView mav = new ModelAndView("ivsgt/ivsgt"); + boardInvestigation.setIvsgtType(ivsgtType); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/ivsgt/"+ivsgtType).get(0).getAccessAuth(); + + mav.addObject("accessAuth", accessAuth); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + + boardInvestigation.setQueryInfo(); + mav.addObject("boardInvestigationList", boardInvestigationService.selectBoardInvestigationList(boardInvestigation)); + boardInvestigation.setContentCnt(boardInvestigationService.selectBoardInvestigationListCnt(boardInvestigation)); + boardInvestigation.setPaginationInfo(); + mav.addObject("searchParams", boardInvestigation); + return mav; + } + + @GetMapping("/ivsgtEditModal") + public ModelAndView ivsgtEditModal(@AuthenticationPrincipal UserInfo loginUser, BoardInvestigation boardInvestigation){ + ModelAndView mav = new ModelAndView("ivsgt/ivsgtEditModal"); + if(boardInvestigation.getIvsgtKey()!=null){ + boardInvestigation = boardInvestigationService.selectBoardInvestigation(boardInvestigation.getIvsgtKey()); + }else{ + boardInvestigation.setWrtOrgan(loginUser.getOgCd()); + boardInvestigation.setWrtNm(loginUser.getUserNm()); + boardInvestigation.setWrtDt(LocalDateTime.now()); + } + mav.addObject("boardInvestigation", boardInvestigation); + return mav; + } + + @GetMapping("/ivsgtViewModal") + public ModelAndView ivsgtViewModal(@AuthenticationPrincipal UserInfo loginUser, BoardInvestigation boardInvestigation){ + ModelAndView mav = new ModelAndView("ivsgt/ivsgtViewModal"); + boardInvestigation = boardInvestigationService.selectBoardInvestigation(boardInvestigation.getIvsgtKey()); + mav.addObject("boardInvestigation", boardInvestigation); + mav.addObject("userSeq",loginUser.getUserSeq()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/ivsgt/"+boardInvestigation.getIvsgtType()).get(0).getAccessAuth()); + return mav; + } + + @PostMapping("/saveBoardInvestigation") + public Integer saveBoardInvestigation(@AuthenticationPrincipal UserInfo loginUser, + BoardInvestigation boardInvestigation, + ArrestType arrestType, + RelatedReports relatedReports, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List deleteFileSeq){ + boardInvestigation.setWrtUserSeq(loginUser.getUserSeq()); + boardInvestigation.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + return boardInvestigationService.saveBoardInvestigation(boardInvestigation, arrestType, relatedReports, deleteFileSeq); + } + + @GetMapping("/searchViewModal") + public ModelAndView searchViewModal(@AuthenticationPrincipal UserInfo loginUser, BoardInvestigation boardInvestigation){ + ModelAndView mav = new ModelAndView("ivsgt/searchViewModal"); + mav.addObject("userSeq",loginUser.getUserSeq()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/ivsgt/"+boardInvestigation.getIvsgtType()).get(0).getAccessAuth()); + + boardInvestigation.setIvsgtType(null); + mav.addObject("boardInvestigationList", boardInvestigationService.selectBoardInvestigationList(boardInvestigation)); + return mav; + } + +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/mapper/BoardInvestigationMapper.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/mapper/BoardInvestigationMapper.java new file mode 100644 index 0000000..db3ee3c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/mapper/BoardInvestigationMapper.java @@ -0,0 +1,17 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.mapper; + +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.ArrestType; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.BoardInvestigation; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.RelatedReports; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface BoardInvestigationMapper { + List selectBoardInvestigationList(BoardInvestigation boardInvestigation); + Integer selectBoardInvestigationListCnt(BoardInvestigation boardInvestigation); + String selectHashTags(Integer ivsgtKey); + ArrestType selectArrestType(Integer ivsgtKey); + List selectRelatedReportsList(Integer ivsgtKey); +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/ArrestType.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/ArrestType.java new file mode 100644 index 0000000..3ac3fde --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/ArrestType.java @@ -0,0 +1,35 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "arrest_type") +public class ArrestType extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "arrest_type_key") + private Integer arrestTypeKey; + @Column(name = "ivsgt_key") + private Integer ivsgtKey; + @Column(name = "arrest_cd") + private String arrestCd; + @Column(name = "arrest_cd2") + private String arrestCd2; + + @Transient + private String arrestCdName; + @Transient + private String arrestCd2Name; +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/BoardInvestigation.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/BoardInvestigation.java new file mode 100644 index 0000000..3954fee --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/BoardInvestigation.java @@ -0,0 +1,74 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "board_investigation") +public class BoardInvestigation extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ivsgt_key") + private Integer ivsgtKey; + @Column(name = "ivsgt_type") + private String ivsgtType; + @Column(name = "content_title") + private String contentTitle; + @Column(name = "content_info") + private String contentInfo; + @Column(name = "content_main") + private String contentMain; + @Column(name = "content_status") + private String contentStatus; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Transient + private Integer fileCnt; + @Transient + private List fileList; + @Transient + private List multipartFileList; + @Transient + private List contentInfos; + @Transient + private String hashTags; + @Transient + private ArrestType arrestType; + @Transient + private RelatedReports relatedReports; + @Transient + private List relatedReportsList; + @Transient + private Integer arrestTypeKey; + @Transient + private String arrestCd; + @Transient + private String arrestCd2; + @Transient + private String arrestCdName; + @Transient + private String arrestCd2Name; +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/HashTagLinkIvsgt.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/HashTagLinkIvsgt.java new file mode 100644 index 0000000..de1aee9 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/HashTagLinkIvsgt.java @@ -0,0 +1,36 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "hash_tag_link_ivsgt") +@IdClass(HashTagLinkIvsgt.HashTagLinkIvsgtId.class) +public class HashTagLinkIvsgt { + @Id + @Column(name = "ivsgt_key") + private Integer ivsgtKey; + @Id + @Column(name = "tag_key") + private Integer tagKey; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class HashTagLinkIvsgtId implements Serializable { + private Integer ivsgtKey; + private Integer tagKey; + } + +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/IvsgtFile.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/IvsgtFile.java new file mode 100644 index 0000000..86b7bee --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/IvsgtFile.java @@ -0,0 +1,47 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "ivsgt_file") +@IdClass(IvsgtFile.IvsgtFileId.class) +public class IvsgtFile extends FileInfo { + @Id + @Column(name = "ivsgt_key") + private Integer ivsgtKey; + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "save_path") + private String savePath; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class IvsgtFileId implements Serializable { + private Integer ivsgtKey; + private Integer fileSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/RelatedReports.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/RelatedReports.java new file mode 100644 index 0000000..5e95155 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/model/RelatedReports.java @@ -0,0 +1,38 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "related_reports") +public class RelatedReports extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "related_reports_key") + private Integer relatedReportsKey; + @Column(name = "parent_ivsgt_key") + private Integer parentIvsgtKey; + @Column(name = "child_ivsgt_key") + private Integer childIvsgtKey; + + @Transient + private List relatedReportsKeyList; + @Transient + private List childIvsgtKeyList; + @Transient + private List deleteKeyList; + @Transient + private String contentTitle; +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/ArrestTypeRepository.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/ArrestTypeRepository.java new file mode 100644 index 0000000..cd59d91 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/ArrestTypeRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.repository; + +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.ArrestType; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ArrestTypeRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/BoardInvestigationRepository.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/BoardInvestigationRepository.java new file mode 100644 index 0000000..5c2304c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/BoardInvestigationRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.repository; + +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.BoardInvestigation; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface BoardInvestigationRepository extends JpaRepository { +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/HashTagLinkIvsgtRepository.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/HashTagLinkIvsgtRepository.java new file mode 100644 index 0000000..d6e406b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/HashTagLinkIvsgtRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.repository; + +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.HashTagLinkIvsgt; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface HashTagLinkIvsgtRepository extends JpaRepository { + void deleteByIvsgtKey(Integer ivsgtKey); +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/IvsgtFileRepository.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/IvsgtFileRepository.java new file mode 100644 index 0000000..f2c767f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/IvsgtFileRepository.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.repository; + +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.IvsgtFile; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface IvsgtFileRepository extends JpaRepository { + List findByIvsgtKey(Integer ivsgtKey); + Optional findTopByIvsgtKeyOrderByFileSeqDesc(Integer ivsgtKey); +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/RelatedReportsRepository.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/RelatedReportsRepository.java new file mode 100644 index 0000000..f4f3f0e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/repository/RelatedReportsRepository.java @@ -0,0 +1,17 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.repository; + +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.RelatedReports; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +public interface RelatedReportsRepository extends JpaRepository { + @Transactional + @Modifying + @Query("delete from RelatedReports r where r.relatedReportsKey in :idList") + void deleteAllByIdInQuery(@Param("idList") List deleteKeyList); +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java new file mode 100644 index 0000000..49baeec --- /dev/null +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java @@ -0,0 +1,142 @@ +package com.dbnt.faisp.ivsgtMgt.boardInvestigation.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; +import com.dbnt.faisp.fpiMgt.affair.model.HashTag; +import com.dbnt.faisp.fpiMgt.affair.repository.HashTagRepository; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.mapper.BoardInvestigationMapper; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.*; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.repository.*; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Service +@RequiredArgsConstructor +public class BoardInvestigationService extends BaseService { + private final BoardInvestigationRepository boardInvestigationRepository; + private final IvsgtFileRepository ivsgtFileRepository; + private final ArrestTypeRepository arrestTypeRepository; + private final RelatedReportsRepository relatedReportsRepository; + private final HashTagRepository hashTagRepository; + private final HashTagLinkIvsgtRepository hashTagLinkIvsgtRepository; + private final BoardInvestigationMapper boardInvestigationMapper; + + public List selectBoardInvestigationList(BoardInvestigation boardInvestigation) { + return boardInvestigationMapper.selectBoardInvestigationList(boardInvestigation); + } + + public Integer selectBoardInvestigationListCnt(BoardInvestigation boardInvestigation) { + return boardInvestigationMapper.selectBoardInvestigationListCnt(boardInvestigation); + } + + public BoardInvestigation selectBoardInvestigation(Integer ivsgtKey) { + BoardInvestigation savedBoardInvestigation = boardInvestigationRepository.findById(ivsgtKey).orElse(null); + if (savedBoardInvestigation != null) { + savedBoardInvestigation.setFileList(ivsgtFileRepository.findByIvsgtKey(ivsgtKey)); + savedBoardInvestigation.setHashTags(boardInvestigationMapper.selectHashTags(ivsgtKey)); + savedBoardInvestigation.setArrestType(boardInvestigationMapper.selectArrestType(ivsgtKey)); + savedBoardInvestigation.setRelatedReportsList(boardInvestigationMapper.selectRelatedReportsList(ivsgtKey)); + } + return savedBoardInvestigation; + } + + @Transactional + public Integer saveBoardInvestigation(BoardInvestigation boardInvestigation, ArrestType arrestType, RelatedReports relatedReports, List deleteFileSeq) { + Integer ivsgtKey = boardInvestigationRepository.save(boardInvestigation).getIvsgtKey(); + String[] hashTagAry = boardInvestigation.getHashTags().split(" "); + if(hashTagAry.length>0){ + saveHashTagLink(ivsgtKey, hashTagAry); + } + arrestType.setIvsgtKey(ivsgtKey); + arrestTypeRepository.save(arrestType); + + if (relatedReports.getDeleteKeyList() != null) { + relatedReportsRepository.deleteAllByIdInQuery(relatedReports.getDeleteKeyList()); + } + + if (relatedReports.getChildIvsgtKeyList() != null) { + List relatedReportsList = new ArrayList<>(); + for (int i = 0; i < relatedReports.getChildIvsgtKeyList().size(); i++) { + RelatedReports relatedReportsTemp = new RelatedReports(); + if (relatedReports.getRelatedReportsKeyList().get(i) > 0) { + relatedReportsTemp.setRelatedReportsKey(relatedReports.getRelatedReportsKeyList().get(i)); + } + relatedReportsTemp.setChildIvsgtKey(relatedReports.getChildIvsgtKeyList().get(i)); + relatedReportsTemp.setParentIvsgtKey(ivsgtKey); + relatedReportsList.add(relatedReportsTemp); + } + relatedReportsRepository.saveAll(relatedReportsList); + } + + if(deleteFileSeq != null && deleteFileSeq.size()>0){ + deletIvsgtFile(ivsgtKey, deleteFileSeq); + } + if(boardInvestigation.getMultipartFileList()!=null){ + saveUploadFiles(ivsgtKey, boardInvestigation.getMultipartFileList()); + } + return ivsgtKey; + } + + private void saveUploadFiles(Integer ivsgtKey, List multipartFileList){ + IvsgtFile lastFileInfo = ivsgtFileRepository.findTopByIvsgtKeyOrderByFileSeqDesc(ivsgtKey).orElse(null); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+ File.separator+"monthPlan"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + IvsgtFile fileInfo = new IvsgtFile(); + fileInfo.setIvsgtKey(ivsgtKey); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setSavePath(path); + ivsgtFileRepository.save(fileInfo); + } + } + + private void deletIvsgtFile(Integer ivsgtKey, List deleteFileSeq) { + List ivsgtFileList = ivsgtFileRepository.findByIvsgtKey(ivsgtKey); + for(IvsgtFile file: ivsgtFileList){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getSavePath(), file.getConvNm())); + ivsgtFileRepository.delete(file); + } + } + } + + private void saveHashTagLink(Integer ivsgtKey, String[] hashTagAry){ + hashTagLinkIvsgtRepository.deleteByIvsgtKey(ivsgtKey); + for(String tagNm : hashTagAry){ + HashTag savedTag = hashTagRepository.findByTagNm(tagNm).orElse(null); + Integer tagKey; + if(savedTag==null){ + HashTag tag = new HashTag(); + tag.setTagNm(tagNm); + tagKey = hashTagRepository.save(tag).getTagKey(); + }else{ + tagKey = savedTag.getTagKey(); + } + HashTagLinkIvsgt hashTagLinkIvsgt = new HashTagLinkIvsgt(); + hashTagLinkIvsgt.setIvsgtKey(ivsgtKey); + hashTagLinkIvsgt.setTagKey(tagKey); + hashTagLinkIvsgtRepository.save(hashTagLinkIvsgt); + } + } + + public FileInfo selectIvsgtFile(Integer parentKey, Integer fileSeq) { + return ivsgtFileRepository.findById(new IvsgtFile.IvsgtFileId(parentKey, fileSeq)).orElse(null); + } +} diff --git a/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtController.java b/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtController.java new file mode 100644 index 0000000..c834028 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtController.java @@ -0,0 +1,54 @@ +package com.dbnt.faisp.menuMgt; + +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.menuMgt.service.MenuMgtService; +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import java.util.List; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/menuMgt") +public class MenuMgtController { + + private final MenuMgtService menuMgtService; + private final CodeMgtService codeMgtService; + + @GetMapping("/menuMgtPage") + public ModelAndView menuMgtPage(MenuMgt menuMgt) { + ModelAndView mav = new ModelAndView("adminPage/menuMgt/menuMgt"); + menuMgt.setQueryInfo(); + mav.addObject("menuMgtList", menuMgtService.selectMenuMgtList(menuMgt)); + menuMgt.setContentCnt(menuMgtService.selectMenuMgtListCnt(menuMgt)); + menuMgt.setPaginationInfo(); + mav.addObject("searchParams", menuMgt); + return mav; + } + + @GetMapping("/menuEditModal") + public ModelAndView menuEditModal(MenuMgt menuMgt){ + ModelAndView mav = new ModelAndView("adminPage/menuMgt/menuEditModal"); + mav.addObject("menuMgt", menuMgt); + mav.addObject("cat1List", codeMgtService.selectCodeMgtList("CAT1")); + mav.addObject("cat2List", codeMgtService.selectCodeMgtList("CAT2")); + mav.addObject("cat3List", codeMgtService.selectCodeMgtList("CAT3")); + return mav; + } + + @PostMapping("/saveMenuMgt") + public String saveMenuMgt(MenuMgt menuMgt){ + return menuMgtService.saveMenuMgt(menuMgt); + } + + @PostMapping("/deleteMenuMgt") + @ResponseBody + public String deleteMenuMgt(@RequestBody List menuMgt){ + menuMgtService.deleteMenuMgt(menuMgt); + return ""; + } + +} diff --git a/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java b/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java new file mode 100644 index 0000000..5478d9d --- /dev/null +++ b/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java @@ -0,0 +1,19 @@ +package com.dbnt.faisp.menuMgt.mapper; + +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface MenuMgtMapper { + + List selectMenuMgtList(MenuMgt menuMgt); + + Integer selectMenuMgtListCnt(MenuMgt menuMgt); + + List selectAccessMenuListWhereUserSeq(Integer userSeq); + + List selectMenuMgtListToAccessAuth(MenuMgt menuMgt); + Integer selectMenuMgtListToAccessAuthCnt(MenuMgt menuMgt); +} diff --git a/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java b/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java new file mode 100644 index 0000000..9c465d8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java @@ -0,0 +1,50 @@ +package com.dbnt.faisp.menuMgt.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "menu_mgt") +public class MenuMgt extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "menu_key") + private Integer menuKey; + @Column(name = "cat1_cd", nullable = false) + private String cat1Cd; + @Column(name = "cat2_cd", nullable = false) + private String cat2Cd; + @Column(name = "cat3_cd") + private String cat3Cd; + @Column(name = "menu_url", nullable = false) + private String menuUrl; + @Column(name = "approval_chk") + private String approvalChk; + @Column(name = "deadline_chk") + private String deadlineChk; + @Column(name = "use_chk") + private String useChk; + + @Transient + private List childList; + @Transient + private Integer userSeq; + + @Transient + private Integer cat1RowspanCnt; + @Transient + private Integer cat2RowspanCnt; + +} diff --git a/src/main/java/com/dbnt/faisp/menuMgt/repository/MenuMgtRepository.java b/src/main/java/com/dbnt/faisp/menuMgt/repository/MenuMgtRepository.java new file mode 100644 index 0000000..e167349 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/menuMgt/repository/MenuMgtRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.menuMgt.repository; + +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface MenuMgtRepository extends JpaRepository { + MenuMgt findTopByCat1CdAndCat2CdAndCat3Cd(String cat1Cd, String cat2Cd, String cat3Cd); +} diff --git a/src/main/java/com/dbnt/faisp/menuMgt/service/MenuMgtService.java b/src/main/java/com/dbnt/faisp/menuMgt/service/MenuMgtService.java new file mode 100644 index 0000000..2ff0b94 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/menuMgt/service/MenuMgtService.java @@ -0,0 +1,170 @@ +package com.dbnt.faisp.menuMgt.service; + +import com.dbnt.faisp.menuMgt.mapper.MenuMgtMapper; +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import com.dbnt.faisp.menuMgt.repository.MenuMgtRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import javax.persistence.Transient; +import java.util.*; + +@Service +@RequiredArgsConstructor +public class MenuMgtService { + + private final MenuMgtRepository menuMgtRepository; + private final MenuMgtMapper menuMgtMapper; + + public List selectMenuMgtList(MenuMgt menuMgt){ + List menuList = menuMgtMapper.selectMenuMgtList(menuMgt); + return menuListRowspanSet(menuList); + } + + public Integer selectMenuMgtListCnt(MenuMgt menuMgt){ + return menuMgtMapper.selectMenuMgtListCnt(menuMgt); + } + + public List selectMenuMgtListToAccessAuth(MenuMgt menuMgt){ + List menuList = menuMgtMapper.selectMenuMgtListToAccessAuth(menuMgt); + return menuListRowspanSet(menuList); + } + public Integer selectMenuMgtListToAccessAuthCnt(MenuMgt menuMgt){ + return menuMgtMapper.selectMenuMgtListToAccessAuthCnt(menuMgt); + } + @Transient + public String saveMenuMgt(MenuMgt menuMgt) { + if(menuMgt.getMenuKey()==null){ + MenuMgt duplMenu = menuMgtRepository.findTopByCat1CdAndCat2CdAndCat3Cd(menuMgt.getCat1Cd(), menuMgt.getCat2Cd(), menuMgt.getCat3Cd()); + if(duplMenu!=null){ + return duplMenu.getMenuUrl(); + }else{ + menuMgtRepository.save(menuMgt); + } + }else{ + menuMgtRepository.save(menuMgt); + } + return ""; + } + + @Transient + public void deleteMenuMgt(List menuList) { + menuMgtRepository.deleteAll(menuList); + } + + private List menuListRowspanSet(List menuList){ + for(int i=0; i selectAccessMenuListWhereUserSeq(Integer userSeq) { + List accessMenuList =menuMgtMapper.selectAccessMenuListWhereUserSeq(userSeq); + Set cat1Set = new HashSet<>(); + Set cat2Set = new HashSet<>(); + Set cat3Set = new HashSet<>(); + for(MenuMgt accessMenu: accessMenuList){ + cat1Set.add(accessMenu.getCat1Cd()); + cat2Set.add(accessMenu.getCat1Cd()+accessMenu.getCat2Cd()); + if(!accessMenu.getCat3Cd().isEmpty()){ + cat3Set.add(accessMenu.getCat1Cd()+accessMenu.getCat2Cd()+accessMenu.getCat3Cd()); + } + } + + List firstMenuList = new ArrayList<>(); + Iterator cat1Itr = cat1Set.iterator(); + while(cat1Itr.hasNext()){ + String cat1Cd = cat1Itr.next(); + MenuMgt firstMenu = new MenuMgt(); + List secondMenuList = new ArrayList<>(); + firstMenu.setCat1Cd(cat1Cd); + Iterator cat2Itr = cat2Set.iterator(); + while(cat2Itr.hasNext()){ + String cat2Cd = cat2Itr.next(); + if(cat2Cd.contains(cat1Cd)){ + MenuMgt secondMenu = new MenuMgt(); + List thirdMenuList = new ArrayList<>(); + secondMenu.setCat2Cd(cat2Cd.replace(cat1Cd, "")); + Iterator cat3Itr = cat3Set.iterator(); + while(cat3Itr.hasNext()){ + String cat3Cd = cat3Itr.next(); + if(cat3Cd.contains(cat2Cd)){ + MenuMgt thirdMenu = new MenuMgt(); + thirdMenu.setCat3Cd(cat3Cd.replace(cat2Cd, "")); + for(MenuMgt accessMenu: accessMenuList){ + if(accessMenu.getCat1Cd().equals(cat1Cd) + && accessMenu.getCat2Cd().equals(secondMenu.getCat2Cd()) + && accessMenu.getCat3Cd().equals(thirdMenu.getCat3Cd())){ + thirdMenu.setMenuUrl(accessMenu.getMenuUrl()); + break; + } + } + thirdMenuList.add(thirdMenu); + } + } + if(thirdMenuList.size()>0){ + thirdMenuList.sort((o1, o2) -> { + String cat3_1 = o1.getCat3Cd(); + String cat3_2 = o2.getCat3Cd(); + return cat3_1.compareTo(cat3_2); + }); + secondMenu.setChildList(thirdMenuList); + }else{ + for(MenuMgt accessMenu: accessMenuList){ + if(accessMenu.getCat1Cd().equals(cat1Cd) + && accessMenu.getCat2Cd().equals(secondMenu.getCat2Cd())){ + secondMenu.setMenuUrl(accessMenu.getMenuUrl()); + break; + } + } + } + secondMenuList.add(secondMenu); + } + } + secondMenuList.sort((o1, o2) -> { + String cat2_1 = o1.getCat2Cd(); + String cat2_2 = o2.getCat2Cd(); + return cat2_1.compareTo(cat2_2); + }); + firstMenu.setChildList(secondMenuList); + firstMenuList.add(firstMenu); + } + firstMenuList.sort((o1, o2) -> { + String cat1_1 = o1.getCat1Cd(); + String cat1_2 = o2.getCat1Cd(); + return cat1_1.compareTo(cat1_2); + }); + return firstMenuList; + } +} diff --git a/src/main/java/com/dbnt/faisp/organMgt/OrganConfigController.java b/src/main/java/com/dbnt/faisp/organMgt/OrganConfigController.java new file mode 100644 index 0000000..68f133a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/OrganConfigController.java @@ -0,0 +1,62 @@ +package com.dbnt.faisp.organMgt; + +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.codeMgt.model.CodeMgt; +import com.dbnt.faisp.organMgt.service.OrganConfigService; +import com.dbnt.faisp.organMgt.model.OrganConfig; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import java.util.*; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/organMgt") +public class OrganConfigController { + private final OrganConfigService organConfigService; + private final CodeMgtService codeMgtService; + + @GetMapping("/organMgtPage") + public ModelAndView organMgtPage(UserInfo userInfo) { + ModelAndView mav = new ModelAndView("adminPage/organMgt/organMgt"); + mav.addObject("searchParams", userInfo); + return mav; + } + + @GetMapping("/selectOrganList") + public List selectOrganList(){ + List organCdList = codeMgtService.selectCodeMgtList("OG"); + List organConfigList = organConfigService.selectSavedOrganList(); + for(CodeMgt organCode: organCdList){ + if(!organCode.getItemCd().equals("OG001")){ + boolean usedFlag = false; + for(OrganConfig organConfig: organConfigList){ + if(organCode.getItemCd().equals(organConfig.getOrganCd())){ + usedFlag = true; + organConfig.setOrganNm(organCode.getItemValue()); + organConfig.setUseState("T"); + break; + } + } + if(!usedFlag){ + OrganConfig organConfig = new OrganConfig(); + organConfig.setOrganCd(organCode.getItemCd()); + organConfig.setOrganNm(organCode.getItemValue()); + organConfig.setUseState("F"); + organConfigList.add(organConfig); + } + } + } + return organConfigList; + } + + @PostMapping("/saveOrganConfig") + @ResponseBody + public Integer saveOrganConfig(@RequestBody List organConfigList){ + return organConfigService.saveOrganConfig(organConfigList); + } + +} diff --git a/src/main/java/com/dbnt/faisp/organMgt/mapper/OrganConfigMapper.java b/src/main/java/com/dbnt/faisp/organMgt/mapper/OrganConfigMapper.java new file mode 100644 index 0000000..d838e48 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/mapper/OrganConfigMapper.java @@ -0,0 +1,12 @@ +package com.dbnt.faisp.organMgt.mapper; + +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface OrganConfigMapper { + List selectDownOrganListWhereUserOgCd(String ogCd); + List selectUpOrganListWhereUserOgCd(String ogCd); +} diff --git a/src/main/java/com/dbnt/faisp/organMgt/model/OrganConfig.java b/src/main/java/com/dbnt/faisp/organMgt/model/OrganConfig.java new file mode 100644 index 0000000..bf70f34 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/model/OrganConfig.java @@ -0,0 +1,33 @@ +package com.dbnt.faisp.organMgt.model; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "organ_config") +public class OrganConfig { + @Id + @Column(name = "organ_cd") + private String organCd; + @Column(name = "organ_type") + private String organType; + @Column(name = "parent_organ") + private String parentOrgan; + + @Transient + private String organNm; + @Transient + private String useState; + +} diff --git a/src/main/java/com/dbnt/faisp/organMgt/repository/OrganConfigRepository.java b/src/main/java/com/dbnt/faisp/organMgt/repository/OrganConfigRepository.java new file mode 100644 index 0000000..ff2892b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/repository/OrganConfigRepository.java @@ -0,0 +1,11 @@ +package com.dbnt.faisp.organMgt.repository; + +import com.dbnt.faisp.organMgt.model.OrganConfig; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.transaction.annotation.Transactional; + + +public interface OrganConfigRepository extends JpaRepository { + @Transactional + void deleteByOrganType(String organType); +} diff --git a/src/main/java/com/dbnt/faisp/organMgt/service/OrganConfigService.java b/src/main/java/com/dbnt/faisp/organMgt/service/OrganConfigService.java new file mode 100644 index 0000000..92145de --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/service/OrganConfigService.java @@ -0,0 +1,35 @@ +package com.dbnt.faisp.organMgt.service; + +import com.dbnt.faisp.organMgt.mapper.OrganConfigMapper; +import com.dbnt.faisp.organMgt.model.OrganConfig; +import com.dbnt.faisp.organMgt.repository.OrganConfigRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class OrganConfigService { + private final OrganConfigRepository organConfigRepository; + private final OrganConfigMapper organConfigMapper; + + public List selectSavedOrganList() { + return organConfigRepository.findAll(); + } + + public Integer saveOrganConfig(List organConfigList) { + organConfigRepository.deleteByOrganType("OGC003"); + organConfigRepository.deleteByOrganType("OGC002"); + return organConfigRepository.saveAll(organConfigList).size(); + } + + public List selectDownOrganListWhereUserOgCd(String ogCd) { + return organConfigMapper.selectDownOrganListWhereUserOgCd(ogCd); + } + public List selectUpOrganListWhereUserOgCd(String ogCd) { + List upOrganList = organConfigMapper.selectUpOrganListWhereUserOgCd(ogCd); + upOrganList.add(ogCd); + return upOrganList; + } +} diff --git a/src/main/java/com/dbnt/faisp/publicBoard/PublicBoardController.java b/src/main/java/com/dbnt/faisp/publicBoard/PublicBoardController.java new file mode 100644 index 0000000..bf2dbcc --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/PublicBoardController.java @@ -0,0 +1,194 @@ +package com.dbnt.faisp.publicBoard; + +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.config.Role; +import com.dbnt.faisp.publicBoard.model.PublicBoard; +import com.dbnt.faisp.publicBoard.model.PublicComment; +import com.dbnt.faisp.publicBoard.service.PublicBoardService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/publicBoard") +public class PublicBoardController { + private final PublicBoardService publicBoardService; + private final CodeMgtService codeMgtService; + + @GetMapping("/noticePage") + public ModelAndView organMgtPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) { + ModelAndView mav; + if(publicBoard.getDashboardFlag()){ + mav = new ModelAndView("publicBoard/notice/noticePageDashBoard"); + publicBoard.setRowCnt(5); + }else{ + mav = new ModelAndView("publicBoard/notice/noticePage"); + } + publicBoard.setQueryInfo(); + publicBoard.setPublicType("PLB001"); + if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) { + publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + } + publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList()); + mav.addObject("noticeList", publicBoardService.selectContentList(publicBoard)); + publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard)); + publicBoard.setPaginationInfo(); + mav.addObject("searchParams", publicBoard); + return mav; + } + + @GetMapping("/boardPage") + public ModelAndView boardPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) { + ModelAndView mav = new ModelAndView("publicBoard/board/boardPage"); + publicBoard.setQueryInfo(); + publicBoard.setPublicType("PLB002"); + if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) { + publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + } + publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList()); + mav.addObject("boardList", publicBoardService.selectContentList(publicBoard)); + publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard)); + publicBoard.setPaginationInfo(); + mav.addObject("searchParams", publicBoard); + return mav; + } + + + @GetMapping("/referencePage") + public ModelAndView referencePage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) { + ModelAndView mav = new ModelAndView("publicBoard/reference/referencePage"); + publicBoard.setQueryInfo(); + publicBoard.setPublicType("PLB003"); + if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) { + publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + } + publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList()); + mav.addObject("referenceList", publicBoardService.selectContentList(publicBoard)); + publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard)); + publicBoard.setPaginationInfo(); + mav.addObject("tabStatusList", codeMgtService.selectCodeMgtList("RPC")); + mav.addObject("searchParams", publicBoard); + return mav; + } + + + @GetMapping("/qnaPage") + public ModelAndView qnaPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) { + ModelAndView mav = new ModelAndView("publicBoard/qna/qnaPage"); + publicBoard.setQueryInfo(); + publicBoard.setPublicType("PLB004"); + if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) { + publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + } + mav.addObject("qnaList", publicBoardService.selectContentList(publicBoard)); + publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard)); + publicBoard.setPaginationInfo(); + mav.addObject("searchParams", publicBoard); + return mav; + } + + + @GetMapping("/editModal") + public ModelAndView editModal(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) { + ModelAndView mav = null; + switch (publicBoard.getPublicType()) { + case "PLB001": // 공지사항 + mav = new ModelAndView("publicBoard/notice/noticeEditModal"); + if (publicBoard.getPublicKey() != null) { + publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey()); + } + break; + case "PLB002": // 공용게시판 + mav = new ModelAndView("publicBoard/board/boardEditModal"); + if (publicBoard.getPublicKey() != null) { + publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey()); + } + break; + case "PLB003": // 자료실 + mav = new ModelAndView("publicBoard/reference/referenceEditModal"); + if (publicBoard.getPublicKey() != null) { + publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey()); + } + break; + case "PLB004": // Q&A + mav = new ModelAndView("publicBoard/qna/qnaEditModal"); + if (publicBoard.getPublicKey() != null) { + publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey()); + break; + } + } + + if (publicBoard.getPublicKey() == null) { + publicBoard.setWrtOrgan(loginUser.getOgCd()); + publicBoard.setWrtPart(loginUser.getOfcCd()); + publicBoard.setWrtUserSeq(loginUser.getUserSeq()); + publicBoard.setWrtUserNm(loginUser.getUserNm()); + publicBoard.setWrtDt(LocalDateTime.now()); + } + mav.addObject("info", publicBoard); + return mav; + } + + + @GetMapping("/viewModal") + public ModelAndView viewModal (@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard){ + ModelAndView mav = null; + switch (publicBoard.getPublicType()) { + case "PLB001": // 공지사항 + mav = new ModelAndView("publicBoard/notice/noticeViewModal"); + break; + case "PLB002": // 공용게시판 + mav = new ModelAndView("publicBoard/board/boardViewModal"); + break; + case "PLB003": // 자료실 + mav = new ModelAndView("publicBoard/reference/referenceViewModal"); + break; + case "PLB004": // Q&A + mav = new ModelAndView("publicBoard/qna/qnaViewModal"); + break; + } + publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey()); + mav.addObject("userSeq", loginUser.getUserSeq()); + mav.addObject("info", publicBoard); + return mav; + } + + @PostMapping("/saveContent") + public Integer saveContent (PublicBoard publicBoard, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ + publicBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + return publicBoardService.saveContent(publicBoard, deleteFileSeq); + } + @PostMapping("/saveComment") + public ModelAndView saveComment (@AuthenticationPrincipal UserInfo loginUser, PublicComment comment){ + comment.setWrtOrgan(loginUser.getOgCd()); + comment.setWrtPart(loginUser.getOfcCd()); + comment.setWrtUserSeq(loginUser.getUserSeq()); + comment.setWrtUserNm(loginUser.getUserNm()); + comment.setWrtDt(LocalDateTime.now()); + publicBoardService.saveComment(comment); + ModelAndView mav = new ModelAndView("publicBoard/commentDiv"); + mav.addObject("comment", comment); + mav.addObject("userSeq", loginUser.getUserSeq()); + return mav; + } + + @PostMapping("/deleteComment") + @ResponseBody + public void deleteComment (@RequestBody PublicComment comment){ + publicBoardService.deleteComment(comment.getPublicKey(), comment.getCommentKey()); + } + } diff --git a/src/main/java/com/dbnt/faisp/publicBoard/mapper/PublicBoardMapper.java b/src/main/java/com/dbnt/faisp/publicBoard/mapper/PublicBoardMapper.java new file mode 100644 index 0000000..0188d86 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/mapper/PublicBoardMapper.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.publicBoard.mapper; + +import com.dbnt.faisp.publicBoard.model.PublicBoard; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface PublicBoardMapper { + List selectContentList(PublicBoard publicBoard); + List selectContentListWhere(PublicBoard publicBoard); + + Integer selectContentListCnt(PublicBoard publicBoard); +} diff --git a/src/main/java/com/dbnt/faisp/publicBoard/model/PublicBoard.java b/src/main/java/com/dbnt/faisp/publicBoard/model/PublicBoard.java new file mode 100644 index 0000000..362da93 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/model/PublicBoard.java @@ -0,0 +1,60 @@ +package com.dbnt.faisp.publicBoard.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "public_board") +public class PublicBoard extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "public_key") + private Integer publicKey; + @Column(name = "public_type") + private String publicType; + @Column(name = "title") + private String title; + @Column(name = "content") + private String content; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_user_nm") + private String wrtUserNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + @Column(name = "organ_chk") + private String organChk; + @Column(name = "tab_status") + private String tabStatus; + + @Transient + private Integer fileCnt; + @Transient + private Integer commentCnt; + @Transient + private List fileList; + @Transient + private List commentList; + @Transient + private List multipartFileList; +} diff --git a/src/main/java/com/dbnt/faisp/publicBoard/model/PublicComment.java b/src/main/java/com/dbnt/faisp/publicBoard/model/PublicComment.java new file mode 100644 index 0000000..1c9fe69 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/model/PublicComment.java @@ -0,0 +1,53 @@ +package com.dbnt.faisp.publicBoard.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "public_comment") +@IdClass(PublicComment.PublicCommentId.class) +public class PublicComment { + @Id + @Column(name = "public_key") + private Integer publicKey; + @Id + @Column(name = "comment_key") + private Integer commentKey; + @Column(name = "comment") + private String comment; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_user_nm") + private String wrtUserNm; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; + @Column(name = "parent_comment") + private Integer parentComment; + + @Transient + private List childCommentList; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class PublicCommentId implements Serializable { + private Integer publicKey; + private Integer commentKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/publicBoard/model/PublicFile.java b/src/main/java/com/dbnt/faisp/publicBoard/model/PublicFile.java new file mode 100644 index 0000000..079a2b9 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/model/PublicFile.java @@ -0,0 +1,47 @@ +package com.dbnt.faisp.publicBoard.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "public_file") +@IdClass(PublicFile.PublicFileId.class) +public class PublicFile extends FileInfo { + @Id + @Column(name = "public_key") + private Integer publicKey; + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "save_path") + private String savePath; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class PublicFileId implements Serializable { + private Integer publicKey; + private Integer fileSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicBoardRepository.java b/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicBoardRepository.java new file mode 100644 index 0000000..5bad135 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicBoardRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.publicBoard.repository; + +import com.dbnt.faisp.publicBoard.model.PublicBoard; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface PublicBoardRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicCommentRepository.java b/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicCommentRepository.java new file mode 100644 index 0000000..250fd20 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicCommentRepository.java @@ -0,0 +1,15 @@ +package com.dbnt.faisp.publicBoard.repository; + +import com.dbnt.faisp.publicBoard.model.PublicComment; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface PublicCommentRepository extends JpaRepository { + + List findByPublicKeyAndParentCommentOrderByCommentKeyAsc(Integer publicKey, Integer parentComment); + Optional findTopByPublicKeyOrderByCommentKeyDesc(Integer publicKey); + +} diff --git a/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicFileRepository.java b/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicFileRepository.java new file mode 100644 index 0000000..af4862e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/repository/PublicFileRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.publicBoard.repository; + +import com.dbnt.faisp.publicBoard.model.PublicFile; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface PublicFileRepository extends JpaRepository { + List findByPublicKey(Integer publicKey); + Optional findTopByPublicKeyOrderByFileSeq(Integer publicKey); + +} diff --git a/src/main/java/com/dbnt/faisp/publicBoard/service/PublicBoardService.java b/src/main/java/com/dbnt/faisp/publicBoard/service/PublicBoardService.java new file mode 100644 index 0000000..bc95baf --- /dev/null +++ b/src/main/java/com/dbnt/faisp/publicBoard/service/PublicBoardService.java @@ -0,0 +1,110 @@ +package com.dbnt.faisp.publicBoard.service; + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; +import com.dbnt.faisp.publicBoard.mapper.PublicBoardMapper; +import com.dbnt.faisp.publicBoard.model.PublicBoard; +import com.dbnt.faisp.publicBoard.model.PublicComment; +import com.dbnt.faisp.publicBoard.model.PublicFile; +import com.dbnt.faisp.publicBoard.repository.PublicBoardRepository; +import com.dbnt.faisp.publicBoard.repository.PublicCommentRepository; +import com.dbnt.faisp.publicBoard.repository.PublicFileRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.List; +import java.util.UUID; + + +@Service +@RequiredArgsConstructor +public class PublicBoardService extends BaseService { + private final PublicBoardRepository publicBoardRepository; + private final PublicCommentRepository publicCommentRepository; + private final PublicFileRepository publicFileRepository; + private final PublicBoardMapper publicBoardMapper; + + public List selectContentList(PublicBoard publicBoard) { + return publicBoardMapper.selectContentList(publicBoard); + } + + public Integer selectContentListCnt(PublicBoard publicBoard) { + return publicBoardMapper.selectContentListCnt(publicBoard); + } + + public PublicBoard selectPublicBoard(Integer publicKey) { + PublicBoard publicBoard = publicBoardRepository.findById(publicKey).orElse(null); + publicBoard.setFileList(publicFileRepository.findByPublicKey(publicKey)); + List commentList = publicCommentRepository.findByPublicKeyAndParentCommentOrderByCommentKeyAsc(publicKey, null); + for(PublicComment comment: commentList){ + comment.setChildCommentList(publicCommentRepository.findByPublicKeyAndParentCommentOrderByCommentKeyAsc(publicKey, comment.getCommentKey())); + } + publicBoard.setCommentList(commentList); + return publicBoard; + } + + @Transactional + public Integer saveContent(PublicBoard publicBoard, List deleteFileSeq) { + Integer publicKey = publicBoardRepository.save(publicBoard).getPublicKey(); + if(deleteFileSeq!=null && deleteFileSeq.size()>0){ + deletePublicFile(publicKey, deleteFileSeq); + } + if(publicBoard.getMultipartFileList()!= null){ + saveUploadFiles(publicKey, publicBoard.getMultipartFileList()); + } + return publicKey; + } + + private void saveUploadFiles(Integer publicKey, List multipartFileList) { + PublicFile lastFileInfo = publicFileRepository.findTopByPublicKeyOrderByFileSeq(publicKey).orElse(null); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+File.separator+"publicFile"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + PublicFile fileInfo = new PublicFile(); + fileInfo.setPublicKey(publicKey); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setSavePath(path); + publicFileRepository.save(fileInfo); + } + } + + private void deletePublicFile(Integer publicKey, List deleteFileSeq) { + List publicFileList = publicFileRepository.findByPublicKey(publicKey); + for(PublicFile file: publicFileList){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getSavePath(), file.getConvNm())); + publicFileRepository.delete(file); + } + } + } + + public Integer saveComment(PublicComment comment) { + PublicComment lastComment = publicCommentRepository + .findTopByPublicKeyOrderByCommentKeyDesc(comment.getPublicKey()).orElse(null); + comment.setCommentKey(lastComment==null?1:(lastComment.getCommentKey()+1)); + return publicCommentRepository.save(comment).getCommentKey(); + } + + @Transactional + public void deleteComment(Integer publicKey, Integer commentKey) { + List childList = publicCommentRepository.findByPublicKeyAndParentCommentOrderByCommentKeyAsc(publicKey, commentKey); + publicCommentRepository.deleteAll(childList); + publicCommentRepository.deleteById(new PublicComment.PublicCommentId(publicKey, commentKey)); + } + + public FileInfo selectPublicFile(Integer publicKey, Integer fileSeq){ + return publicFileRepository.findById(new PublicFile.PublicFileId(publicKey, fileSeq)).orElse(null); + } +} \ No newline at end of file diff --git a/src/main/java/com/dbnt/faisp/translator/TranslatorController.java b/src/main/java/com/dbnt/faisp/translator/TranslatorController.java new file mode 100644 index 0000000..7e4dd3b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/translator/TranslatorController.java @@ -0,0 +1,183 @@ +package com.dbnt.faisp.translator; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.translator.model.Translator; +import com.dbnt.faisp.translator.model.TranslatorCrr; +import com.dbnt.faisp.translator.service.TranslatorService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.util.ParamMap; +import com.dbnt.faisp.util.Utils; + +import lombok.RequiredArgsConstructor; + +import java.io.IOException; +import java.util.List; + +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/translator") +public class TranslatorController { + + private final AuthMgtService authMgtService; + private final TranslatorService translatorSevice; + + + @GetMapping("/info") + public ModelAndView translatorInfo(@AuthenticationPrincipal UserInfo loginUser,Translator translator,HttpServletResponse response) { + ModelAndView mav; + if (translator.getDashboardFlag()){ + mav = new ModelAndView("translator/translatorDashboard"); + translator.setRowCnt(5); + }else{ + mav = new ModelAndView("translator/translator"); + } + translator.setDownOrganCdList(loginUser.getDownOrganCdList()); + //엑셀다운 + if(translator.getExcel() != null && translator.getExcel().equals("Y")){ + String[] headers = { "translator_key", "ogdp1", "tr_lang", "tr_career", "tr_name", "tr_age", "tr_nny", "tr_edu", "tr_cft", "dml_yn", "apt_dt", "tr_phone"}; + String[] headerNames = { "연번", "관서명", "언어", "경력", "성명", "나이", "국적", "학력", "자격증", "해촉", "위촉일", "연락처" }; + String[] columnType = { "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String"}; + String sheetName = "민간 통역인 현황"; + String excelFileName = "민간 통역인 현황"; + List translatorInfoList= translatorSevice.selectTranslatorListEx(translator); + + try { + Utils.listToExcel(translatorInfoList, response, headers, headerNames, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; + } + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth(); + + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("userOrgan", loginUser.getOgCd()); + mav.addObject("accessAuth", accessAuth); + translator.setQueryInfo(); + mav.addObject("translatorList", translatorSevice.selectTranslatorList(translator)); + translator.setContentCnt(translatorSevice.selectTranslatorListCnt(translator)); + translator.setPaginationInfo(); + mav.addObject("searchParams", translator); + return mav; + } + + @PostMapping("/insertTranslatorInfo") + public String insertTranslatorInfo(@AuthenticationPrincipal UserInfo loginUser,Translator translator) { + translator.setWrtNm(loginUser.getUserId()); + translator.setWrtOrgan(loginUser.getOgCd()); + return translatorSevice.insertTranslatorInfo(translator); + } + + @GetMapping("/translatorEditModal") + public ModelAndView translatorEditModal(@AuthenticationPrincipal UserInfo loginUser,Translator translator){ + ModelAndView mav = new ModelAndView("translator/translatorEditModal"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth(); + mav.addObject("wrtId", translatorSevice.selectTrFristId(translator.getTranslatorKey())); + mav.addObject("userId", loginUser.getUserId()); + mav.addObject("trInfo", translatorSevice.selectTranslatorView(translator)); + mav.addObject("accessAuth", accessAuth); + return mav; + } + + @PostMapping("/updateTranslatorInfo") + public Translator updatetranslatorInfo(@AuthenticationPrincipal UserInfo loginUser,Translator translator) { + translator.setWrtNm(loginUser.getUserId()); + translator.setWrtOrgan(loginUser.getOgCd()); + Translator result = translatorSevice.updatetranslatorInfo(translator); + return result; + } + + @GetMapping("/revisionHistory") + public ModelAndView revisionHistory(Translator translator){ + ModelAndView mav = new ModelAndView("translator/translatorHistory"); + mav.addObject("HistoryList", translatorSevice.selectHistoryList(translator)); + return mav; + } + + @GetMapping("/HistoryView") + @ResponseBody + public Translator HistoryView(Translator translator){ + + return translatorSevice.HistoryView(translator); + } + + @GetMapping("/careerView") + public ModelAndView careerView(@AuthenticationPrincipal UserInfo loginUser,TranslatorCrr translatorCrr){ + ModelAndView mav = new ModelAndView("translator/translatorCareerModal"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth(); + mav.addObject("policeCrr", translatorSevice.selectMaritimePoliceCareer(translatorCrr)); + mav.addObject("anotherCrr", translatorSevice.selectAnotherOrganizationCareer(translatorCrr)); + mav.addObject("trKey", translatorCrr.getTranslatorKey()); + mav.addObject("wrtId", translatorSevice.selectTrFristId(translatorCrr.getTranslatorKey())); + mav.addObject("userId", loginUser.getUserId()); + mav.addObject("accessAuth", accessAuth); + return mav; + } + + @GetMapping("/careerInsertPage") + public ModelAndView careerInsertPage(TranslatorCrr translatorCrr){ + ModelAndView mav = new ModelAndView("translator/translatorCareerInsert"); + mav.addObject("trKey", translatorCrr.getTranslatorKey()); + return mav; + } + + @PostMapping("/insertTranslatorCareer") + @ResponseBody + public int insertTranslatorCareer(@RequestBody List translatorCrr){ + int trKey = translatorSevice.insertTranslatorCareer(translatorCrr); + return trKey; + } + + @PostMapping("/deleteCareer") + @ResponseBody + public int deleteCareer(@RequestBody TranslatorCrr translatorCrr) { + int trKey = translatorSevice.deleteCareer(translatorCrr); + return trKey; + } + + @PostMapping("/deleteTranslatorInfo") + @ResponseBody + public void deleteTranslatorInfo(@RequestBody int trKey) { + translatorSevice.deleteTranslatorInfo(trKey); + } + + @GetMapping("/statisticsLang") + public ModelAndView statisticsLang() { + ModelAndView mav = new ModelAndView("translator/translatorStatisticsLang"); + mav.addObject("cntList", translatorSevice.selectStatisticsLangCnt()); + mav.addObject("total", translatorSevice.selectStatisticsLangTotal()); + return mav; + } + + @GetMapping("/statisticsExcelDown") + public void statisticsExcelDown(HttpServletResponse response) { + ParamMap total =translatorSevice.selectStatisticsLangTotal(); + String[] headers = { "rownum", "lang", "cnt_total", "cnt_center", "cnt_west", "cnt_south", "cnt_east", "cnt_jeju"}; + String[] headerNames = { "어권별 구분", "", "총계", "중부청", "서해청", "남해청", "동해청", "제주청"}; + String[] headerNames2 = { "연번", "계", ""+total.getInt("total_total")+"", ""+total.getInt("total_center")+"", ""+total.getInt("total_west")+"", ""+total.getInt("total_south")+"", ""+total.getInt("total_east")+"", ""+total.getInt("total_jeju")+""}; + String[] columnType = { "int", "String", "int", "int", "int", "int", "int", "int"}; + String sheetName = "어권별 현황 통계"; + String excelFileName = "어권별 현황 통계"; + List translatorInfoList= translatorSevice.selectStatisticsLangCnt(); + + try { + Utils.downExcel(translatorInfoList, response, headers, headerNames,headerNames2, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + } + + + + +} diff --git a/src/main/java/com/dbnt/faisp/translator/mapper/TranslatorMapper.java b/src/main/java/com/dbnt/faisp/translator/mapper/TranslatorMapper.java new file mode 100644 index 0000000..3856fb8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/translator/mapper/TranslatorMapper.java @@ -0,0 +1,32 @@ +package com.dbnt.faisp.translator.mapper; + +import com.dbnt.faisp.translator.model.Translator; +import com.dbnt.faisp.translator.model.TranslatorCrr; +import com.dbnt.faisp.util.ParamMap; + +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface TranslatorMapper { + + List selectTranslatorList(Translator translator); + + Integer selectTranslatorListCnt(Translator translator); + + List selectHistoryList(Translator translator); + + Translator HistoryView(Translator translator); + + List selectCareerList(TranslatorCrr translatorCrr); + + List selectStatisticsLangCnt(); + + ParamMap selectStatisticsLangTotal(); + + List selectTranslatorListEx(Translator translator); + + String selectTrFristId(int translatorKey); + +} diff --git a/src/main/java/com/dbnt/faisp/translator/model/Translator.java b/src/main/java/com/dbnt/faisp/translator/model/Translator.java new file mode 100644 index 0000000..6c729c0 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/translator/model/Translator.java @@ -0,0 +1,107 @@ +package com.dbnt.faisp.translator.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(Translator.TranslatorId.class) +@Table(name = "translator_info") +public class Translator extends BaseModel implements Serializable{ + @Id + @Column(name = "translator_key") + private Integer translatorKey; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "ogdp1") + private String ogdp1; + @Column(name = "tr_lang") + private String trLang; + @Column(name = "tr_career") + private String trCareer; + @Column(name = "tr_name") + private String trName; + @Column(name = "tr_sex") + private String trSex; + @Column(name = "tr_phone") + private String trPhone; + @Column(name = "tr_nny") + private String trNny; + @Column(name = "tr_age") + private String trAge; + @Column(name = "tr_edu") + private String trEdu; + @Column(name = "tr_cft") + private String trCft; + @Column(name = "tr_visa") + private String trVisa; + @Column(name = "apt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate aptDt; + @Column(name = "dml_yn") + private String dmlYn; + @Column(name = "remark") + private String remark; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; + @Column(name = "wrt_organ") + private String wrtOrgan; + + + @Transient + private String excel; + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class TranslatorId implements Serializable { + private Integer translatorKey; + + private Integer versionNo; +} + +public Date getInt(String string) { + return null; +} + +public Date getString(String string) { + return null; +} + +@Override +public String toString() { + return "Translator [translatorKey=" + translatorKey + ", versionNo=" + versionNo + ", ogdp1=" + ogdp1 + ", trLang=" + + trLang + ", trCareer=" + trCareer + ", trName=" + trName + ", trSex=" + trSex + ", trPhone=" + trPhone + + ", trNny=" + trNny + ", trAge=" + trAge + ", trEdu=" + trEdu + ", trCft=" + trCft + ", trVisa=" + trVisa + + ", aptDt=" + aptDt + ", dmlYn=" + dmlYn + ", remark=" + remark + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + + ", wrtOrgan=" + wrtOrgan + ", excel=" + excel + "]"; +} + + + + +} diff --git a/src/main/java/com/dbnt/faisp/translator/model/TranslatorCrr.java b/src/main/java/com/dbnt/faisp/translator/model/TranslatorCrr.java new file mode 100644 index 0000000..48d1fd2 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/translator/model/TranslatorCrr.java @@ -0,0 +1,60 @@ +package com.dbnt.faisp.translator.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "translator_career") +@IdClass(TranslatorCrr.TranslatorCrrId.class) +public class TranslatorCrr extends BaseModel implements Serializable{ + @Id + @Column(name = "career_seq") + private Integer careerSeq; + @Id + @Column(name = "translator_key") + private Integer translatorKey; + @Column(name = "his_gubun") + private String hisGubun; + @Column(name = "contents") + private String contents; + @Column(name = "tc_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate tcDt; + @Column(name = "remark") + private String remark; + + +@Override +public String toString() { + return "TranslatorCrr [careerSeq=" + careerSeq + ", translatorKey=" + translatorKey + ", hisGubun=" + hisGubun + + ", contents=" + contents + ", tcDt=" + tcDt + ", remark=" + remark + "]"; +} + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class TranslatorCrrId implements Serializable { + private Integer careerSeq; + private Integer translatorKey; +} +} diff --git a/src/main/java/com/dbnt/faisp/translator/repository/TranslatorCareerRepository.java b/src/main/java/com/dbnt/faisp/translator/repository/TranslatorCareerRepository.java new file mode 100644 index 0000000..d742669 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/translator/repository/TranslatorCareerRepository.java @@ -0,0 +1,25 @@ +package com.dbnt.faisp.translator.repository; + +import com.dbnt.faisp.translator.model.TranslatorCrr; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + + +public interface TranslatorCareerRepository extends JpaRepository { + + TranslatorCrr findTopByTranslatorKeyOrderByCareerSeqDesc(Integer translatorKey); + + Optional findByCareerSeqAndTranslatorKey(Integer careerSeq, Integer translatorKey); + + void deleteByTranslatorKey(int trKey); + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/translator/repository/TranslatorRepository.java b/src/main/java/com/dbnt/faisp/translator/repository/TranslatorRepository.java new file mode 100644 index 0000000..bb67125 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/translator/repository/TranslatorRepository.java @@ -0,0 +1,17 @@ +package com.dbnt.faisp.translator.repository; + +import com.dbnt.faisp.translator.model.Translator; +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface TranslatorRepository extends JpaRepository { + + Translator findFirstByOrderByTranslatorKeyDesc(); + + void deleteByTranslatorKey(int trKey); + + + + +} diff --git a/src/main/java/com/dbnt/faisp/translator/service/TranslatorService.java b/src/main/java/com/dbnt/faisp/translator/service/TranslatorService.java new file mode 100644 index 0000000..427e039 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/translator/service/TranslatorService.java @@ -0,0 +1,147 @@ +package com.dbnt.faisp.translator.service; + + +import com.dbnt.faisp.translator.mapper.TranslatorMapper; +import com.dbnt.faisp.translator.model.Translator; +import com.dbnt.faisp.translator.model.Translator.TranslatorId; +import com.dbnt.faisp.translator.model.TranslatorCrr; +import com.dbnt.faisp.translator.repository.TranslatorCareerRepository; +import com.dbnt.faisp.translator.repository.TranslatorRepository; +import com.dbnt.faisp.util.ParamMap; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + + +import java.time.LocalDateTime; +import java.util.*; + +@Service +@RequiredArgsConstructor +public class TranslatorService { + + private final TranslatorRepository translatorRepository; + private final TranslatorCareerRepository translatorCareerRepository; + private final TranslatorMapper translatorMapper; + + public String insertTranslatorInfo(Translator translator) { + Translator dbTranslator = translatorRepository.findFirstByOrderByTranslatorKeyDesc(); + translator.setWrtDt(LocalDateTime.now()); + if (dbTranslator == null) { + translator.setTranslatorKey(1); + translator.setVersionNo(1); + return translatorRepository.save(translator).getTrName(); + } else { + translator.setTranslatorKey(dbTranslator.getTranslatorKey() + 1); + translator.setVersionNo(1); + return translatorRepository.save(translator).getTrName(); + } + + } + + public List selectTranslatorList(Translator translator) { + return translatorMapper.selectTranslatorList(translator); + } + + public Integer selectTranslatorListCnt(Translator translator) { + return translatorMapper.selectTranslatorListCnt(translator); + } + + public Translator selectTranslatorView(Translator translator) { + return translatorRepository.findById(new TranslatorId(translator.getTranslatorKey(), translator.getVersionNo())) + .orElse(null); + } + + @Transactional + public Translator updatetranslatorInfo(Translator translator) { + Translator dbTranslator = translatorRepository + .findById(new TranslatorId(translator.getTranslatorKey(), translator.getVersionNo())).orElse(null); + Translator translatorTmp = new Translator(); + translatorTmp.setTranslatorKey(dbTranslator.getTranslatorKey()); + translatorTmp.setVersionNo(dbTranslator.getVersionNo() + 1); + translatorTmp.setOgdp1(translator.getOgdp1()); + translatorTmp.setTrLang(translator.getTrLang()); + translatorTmp.setTrCareer(translator.getTrCareer()); + translatorTmp.setTrName(translator.getTrName()); + translatorTmp.setTrSex(translator.getTrSex()); + translatorTmp.setTrPhone(translator.getTrPhone()); + translatorTmp.setTrNny(translator.getTrNny()); + translatorTmp.setTrAge(translator.getTrAge()); + translatorTmp.setTrEdu(translator.getTrEdu()); + translatorTmp.setTrCft(translator.getTrCft()); + translatorTmp.setTrVisa(translator.getTrVisa()); + translatorTmp.setAptDt(translator.getAptDt()); + translatorTmp.setDmlYn(translator.getDmlYn()); + translatorTmp.setRemark(translator.getRemark()); + translatorTmp.setWrtNm(translator.getWrtNm()); + translatorTmp.setWrtDt(LocalDateTime.now()); + translatorTmp.setWrtOrgan(translator.getWrtOrgan()); + translatorRepository.save(translatorTmp); + return translatorTmp; + } + + public List selectHistoryList(Translator translator) { + return translatorMapper.selectHistoryList(translator); + } + + public Translator HistoryView(Translator translator) { + return translatorMapper.HistoryView(translator); + } + + public int insertTranslatorCareer(List translatorCrr) { + int trKey = 0; + for(TranslatorCrr tCrr : translatorCrr ) { + TranslatorCrr dbCareer = translatorCareerRepository.findTopByTranslatorKeyOrderByCareerSeqDesc(tCrr.getTranslatorKey()); + if (dbCareer == null) { + tCrr.setCareerSeq(1); + translatorCareerRepository.save(tCrr); + } else { + tCrr.setCareerSeq(dbCareer.getCareerSeq()+ 1); + translatorCareerRepository.save(tCrr); + } + trKey = tCrr.getTranslatorKey(); + } + return trKey; + } + + public List selectMaritimePoliceCareer(TranslatorCrr translatorCrr) { + translatorCrr.setHisGubun("Y"); + return translatorMapper.selectCareerList(translatorCrr); + } + + public List selectAnotherOrganizationCareer(TranslatorCrr translatorCrr) { + translatorCrr.setHisGubun("N"); + return translatorMapper.selectCareerList(translatorCrr); + } + + @Transactional + public int deleteCareer(TranslatorCrr translatorCrr) { + TranslatorCrr dbCareer = translatorCareerRepository.findByCareerSeqAndTranslatorKey(translatorCrr.getCareerSeq(),translatorCrr.getTranslatorKey()).orElse(null); + translatorCareerRepository.delete(dbCareer); + return translatorCrr.getTranslatorKey(); + } + + @Transactional + public void deleteTranslatorInfo(int trKey) { + translatorCareerRepository.deleteByTranslatorKey(trKey); + translatorRepository.deleteByTranslatorKey(trKey); + } + + public List selectStatisticsLangCnt() { + return translatorMapper.selectStatisticsLangCnt(); + } + + public ParamMap selectStatisticsLangTotal() { + return translatorMapper.selectStatisticsLangTotal(); + } + + public List selectTranslatorListEx(Translator translator) { + return translatorMapper.selectTranslatorListEx(translator); + } + + public String selectTrFristId(int translatorKey) { + return translatorMapper.selectTrFristId(translatorKey); + } + +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/MyInfoController.java b/src/main/java/com/dbnt/faisp/userInfo/MyInfoController.java new file mode 100644 index 0000000..ca5514e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/MyInfoController.java @@ -0,0 +1,48 @@ +package com.dbnt.faisp.userInfo; + +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import com.dbnt.faisp.userInfo.model.DashboardConfig; +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.userInfo.service.UserInfoService; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/myInfo") +public class MyInfoController { + + private final UserInfoService userInfoService; + + @GetMapping("/myInfoPage") + public ModelAndView myInfoPage(@AuthenticationPrincipal UserInfo loginUser){ + ModelAndView mav = new ModelAndView("user/myInfo"); + mav.addObject("userInfo", loginUser); + mav.addObject("dashboardConfigList", userInfoService.getDashboardConfigList(loginUser.getUserSeq())); + return mav; + } + + @GetMapping("/getDashBoardConfig") + public List getDashBoardConfig(@AuthenticationPrincipal UserInfo loginUser){ + return userInfoService.getDashboardConfigList(loginUser.getUserSeq()); + } + + @PostMapping("/selectedMenuTable") + @ResponseBody + public ModelAndView dashboardConfigTable(@RequestBody List selectMenuList){ + ModelAndView mav = new ModelAndView("user/dashboardConfigTable"); + mav.addObject("dashboardConfigList", selectMenuList); + return mav; + } + + @PostMapping("saveDashboardConfig") + @ResponseBody + public void saveDashboardConfig(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List configList){ + userInfoService.saveDashboardConfigList(loginUser.getUserSeq(), configList); + } + +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/UserInfoController.java b/src/main/java/com/dbnt/faisp/userInfo/UserInfoController.java new file mode 100644 index 0000000..0fdd28a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/UserInfoController.java @@ -0,0 +1,22 @@ +package com.dbnt.faisp.userInfo; + +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.userInfo.service.UserInfoService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/user") +public class UserInfoController { + + private final UserInfoService userInfoService; + + @PostMapping("/insertUserInfo") + public String insertUserInfo(UserInfo insertReqInfo) { + return userInfoService.insertUserInfo(insertReqInfo); + } + +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/mapper/UserInfoMapper.java b/src/main/java/com/dbnt/faisp/userInfo/mapper/UserInfoMapper.java new file mode 100644 index 0000000..b5a5894 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/mapper/UserInfoMapper.java @@ -0,0 +1,20 @@ +package com.dbnt.faisp.userInfo.mapper; + +import com.dbnt.faisp.userInfo.model.DashboardConfig; +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.util.ParamMap; + +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface UserInfoMapper { + List selectUserInfoList(UserInfo userInfo); + + Integer selectUserInfoListCnt(UserInfo userInfo); + + List selectManagerList(ParamMap param); + + List selectDashboardConfigList(Integer userSeq); +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/model/DashboardConfig.java b/src/main/java/com/dbnt/faisp/userInfo/model/DashboardConfig.java new file mode 100644 index 0000000..733652b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/model/DashboardConfig.java @@ -0,0 +1,45 @@ +package com.dbnt.faisp.userInfo.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "dashboard_config") +@IdClass(DashboardConfig.DashboardConfigId.class) +public class DashboardConfig { + @Id + @Column(name = "menu_key") + private Integer menuKey; + @Id + @Column(name = "user_seq") + private Integer userSeq; + @Column(name = "order_num") + private Integer orderNum; + + @Transient + private String cat1Cd; + @Transient + private String cat2Cd; + @Transient + private String cat3Cd; + @Transient + private String menuUrl; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class DashboardConfigId implements Serializable { + private Integer menuKey; + private Integer userSeq; + } +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java b/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java new file mode 100644 index 0000000..30ba59c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java @@ -0,0 +1,150 @@ +package com.dbnt.faisp.userInfo.model; + +import com.dbnt.faisp.authMgt.model.AccessConfig; +import com.dbnt.faisp.authMgt.model.ApprovalConfig; +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "user_info") +public class UserInfo extends BaseModel implements UserDetails{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "user_seq") + private Integer userSeq; + @Column(name = "dic_code") + private String dicCode; + @Column(name = "user_id") + private String userId; + @Column(name = "passwd") + private String password; + @Column(name = "user_nm") + private String userNm; + @Column(name = "birth_date") + private LocalDate birthDate; + @Column(name = "sex") + private String sex; + @Column(name = "email") + private String email; + @Column(name = "phone_no") + private String phoneNo; + @Column(name = "area_cd") + private String areaCd; + @Column(name = "login_chk") + private String loginChk; + @Column(name = "fail_cnt") + private Integer failCnt; + @Column(name = "user_role") + private String userRole; + @Column(name = "user_status") + private String userStatus; + @Column(name = "og_cd") + private String ogCd; + @Column(name = "ofc_cd") + private String ofcCd; + @Column(name = "title_cd") + private String titleCd; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; + @Column(name = "group_cd") + private String groupCd; + @Column(name = "series_cd") + private String seriesCd; + @Column(name = "ofc_head_yn") + private String ofcHeadYn; + @Column(name = "hiring_cd") + private String hiringCd; + @Column(name = "employ_cd") + private String employCd; + @Column(name = "outturn_cd") + private String outturnCd; + @Column(name = "work_cd") + private String workCd; + @Column(name = "job_in_cd") + private String jobInCd; + @Column(name = "language_cd") + private String languageCd; + @Column(name = "police_in_date") + private LocalDate policeInDate; + @Column(name = "organ_in_date") + private LocalDate organInDate; + @Column(name = "ofc_in_date") + private LocalDate ofcInDate; + @Column(name = "title_in_date") + private LocalDate titleInDate; + + @Transient + private String modifyPassword; + @Transient + private String positionName; + @Transient + private String departmentName; + + @Transient + private List accessConfigList; + @Transient + private List approvalConfigList; + + @Override + public Collection getAuthorities() { + Set roles = new HashSet<>(); + for (String role : userRole.split(",")) { + roles.add(new SimpleGrantedAuthority(role)); + } + return roles; + } + + @Override + public String getUsername() { + return userId; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return userStatus.equals("USC003"); + } + + @Override + public String toString() { + return "UserInfo [userSeq=" + userSeq + ", userId=" + userId + ", password=" + password + ", userNm=" + userNm + + ", ogCd=" + ogCd + ", ofcCd=" + ofcCd + ", userRole=" + userRole + ", userStatus=" + userStatus + + ", wrtDt=" + wrtDt + ", modifyPassword=" + modifyPassword + ", positionName=" + positionName + + ", departmentName=" + departmentName + ", accessConfigList=" + accessConfigList + ", approvalConfigList=" + + approvalConfigList + "]"; + } +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/repository/DashboardConfigRepository.java b/src/main/java/com/dbnt/faisp/userInfo/repository/DashboardConfigRepository.java new file mode 100644 index 0000000..31a3e3b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/repository/DashboardConfigRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.userInfo.repository; + +import com.dbnt.faisp.userInfo.model.DashboardConfig; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface DashboardConfigRepository extends JpaRepository { + + void deleteByUserSeq(Integer userSeq); +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/repository/UserInfoRepository.java b/src/main/java/com/dbnt/faisp/userInfo/repository/UserInfoRepository.java new file mode 100644 index 0000000..4f79526 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/repository/UserInfoRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.userInfo.repository; + +import com.dbnt.faisp.userInfo.model.UserInfo; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + + +public interface UserInfoRepository extends JpaRepository { + Optional findByUserId(String userId); + + UserInfo findByUserSeq(Integer userSeq); + +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/service/UserInfoService.java b/src/main/java/com/dbnt/faisp/userInfo/service/UserInfoService.java new file mode 100644 index 0000000..6ddaa22 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/service/UserInfoService.java @@ -0,0 +1,132 @@ +package com.dbnt.faisp.userInfo.service; + +import com.dbnt.faisp.config.Role; +import com.dbnt.faisp.userInfo.mapper.UserInfoMapper; +import com.dbnt.faisp.userInfo.model.DashboardConfig; +import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.userInfo.repository.DashboardConfigRepository; +import com.dbnt.faisp.userInfo.repository.UserInfoRepository; +import com.dbnt.faisp.util.ParamMap; + +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + +@Service +@RequiredArgsConstructor +public class UserInfoService implements UserDetailsService { + + private final UserInfoRepository userInfoRepository; + private final DashboardConfigRepository dashboardConfigRepository; + private final UserInfoMapper userInfoMapper; + + @Transactional + public String insertUserInfo(UserInfo userInfo){ + if(userInfoRepository.findByUserId(userInfo.getUserId()).orElse(null) != null){ + return "userIdDuplication"; + } + userInfo.setUserRole(Role.USER.getValue()); + userInfo.setUserStatus("USC002"); + userInfo.setPassword(convertPassword(userInfo.getPassword())); + userInfo.setWrtDt(LocalDateTime.now()); + return userInfoRepository.save(userInfo).getUserId(); + } + @Transactional + public String updateUserInfo(UserInfo userInfo){ + userInfo.setPassword(convertPassword(userInfo.getPassword())); + return userInfoRepository.save(userInfo).getUserId(); + } + + public String updatePassword(UserInfo loginUser, UserInfo modifyInfo){ + Pbkdf2PasswordEncoder passwordEncoder = new Pbkdf2PasswordEncoder(); + if(passwordEncoder.matches(modifyInfo.getPassword(), loginUser.getPassword())){ + loginUser.setPassword(convertPassword(modifyInfo.getModifyPassword())); + userInfoRepository.save(loginUser); + return "OK"; + }else{ + return "passwordNotMatch"; + } + } + + private String convertPassword(String password){ + Pbkdf2PasswordEncoder passwordEncoder = new Pbkdf2PasswordEncoder(); + return passwordEncoder.encode(password); + } + + @Override + public UserDetails loadUserByUsername(String userId) throws UsernameNotFoundException { + return userInfoRepository.findByUserId(userId).orElseThrow(() -> new UsernameNotFoundException(userId)); + } + + public List selectUserInfoList(UserInfo userInfo) { + return userInfoMapper.selectUserInfoList(userInfo); + } + + public Integer selectUserInfoListCnt(UserInfo userInfo) { + return userInfoMapper.selectUserInfoListCnt(userInfo); + } + + public UserInfo selectUserInfo(Integer userSeq) { + return userInfoRepository.findByUserSeq(userSeq); + } + @Transactional + public int updateUserApproval(List userInfo) { + int cnt = 0; + for(UserInfo user: userInfo) { + UserInfo dbUserInfo = userInfoRepository.findById(user.getUserSeq()).orElse(null); + if(dbUserInfo != null) { + dbUserInfo.setUserStatus(user.getUserStatus()); + userInfoRepository.save(dbUserInfo); + cnt++; + } + } + return cnt; + } + @Transactional + public int updateUserCompanion(List userInfo) { + int cnt = 0; + for(UserInfo user: userInfo) { + UserInfo dbUserInfo = userInfoRepository.findById(user.getUserSeq()).orElse(null); + if(dbUserInfo != null) { + dbUserInfo.setUserStatus(user.getUserStatus()); + userInfoRepository.save(dbUserInfo); + cnt++; + } + } + return cnt; + } + @Transactional + public void updateUser(UserInfo userInfo) { + UserInfo dbUserInfo = userInfoRepository.findById(userInfo.getUserSeq()).orElse(null); + dbUserInfo.setUserRole(userInfo.getUserRole()); + userInfoRepository.save(dbUserInfo); + + } + public void userDelete(List userInfo) { + userInfoRepository.deleteAll(userInfo); + } + public List selectManagerList(ParamMap param) { + return userInfoMapper.selectManagerList(param); + } + + public List getDashboardConfigList(Integer userSeq) { + return userInfoMapper.selectDashboardConfigList(userSeq); + } + + + @Transactional + public void saveDashboardConfigList(Integer userSeq, List configList) { + dashboardConfigRepository.deleteByUserSeq(userSeq); + for(DashboardConfig config: configList){ + config.setUserSeq(userSeq); + } + dashboardConfigRepository.saveAll(configList); + } +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/userMgtController.java b/src/main/java/com/dbnt/faisp/userInfo/userMgtController.java new file mode 100644 index 0000000..f79a79f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/userInfo/userMgtController.java @@ -0,0 +1,70 @@ +package com.dbnt.faisp.userInfo; + +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.userInfo.service.UserInfoService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; + +import java.util.List; + +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/userMgt") +public class userMgtController { + + private final UserInfoService userInfoService; + private final CodeMgtService codeMgtService; + + @GetMapping("/userMgtPage") + public ModelAndView codeMgtPage(UserInfo userInfo) { + ModelAndView mav = new ModelAndView("adminPage/userMgt/userMgt"); + userInfo.setQueryInfo(); + if(userInfo.getUserStatus().equals("") || userInfo.getUserStatus() == null) { + userInfo.setUserStatus("USC003"); + } + mav.addObject("userInfoList", userInfoService.selectUserInfoList(userInfo)); + userInfo.setContentCnt(userInfoService.selectUserInfoListCnt(userInfo)); + userInfo.setPaginationInfo(); + mav.addObject("searchParams", userInfo); + return mav; + } + + @GetMapping("/userEditModal") + public ModelAndView menuEditModal(UserInfo userInfo){ + ModelAndView mav = new ModelAndView("adminPage/userMgt/userEditModal"); + mav.addObject("OgList", codeMgtService.selectCodeMgtList("OG")); + mav.addObject("OfcList", codeMgtService.selectCodeMgtList("OFC")); + mav.addObject("userInfo", userInfoService.selectUserInfo(userInfo.getUserSeq())); + return mav; + } + + @PostMapping("/userApproval") + @ResponseBody + public int userApproval(@RequestBody List userInfo){ + int result = userInfoService.updateUserApproval(userInfo); + return result; + } + + @PostMapping("/userCompanion") + @ResponseBody + public int userCompanion(@RequestBody List userInfo){ + int result = userInfoService.updateUserCompanion(userInfo); + return result; + } + + @PostMapping("/updateUserInfo") + public void updateUserInfo(UserInfo userInfo) { + userInfoService.updateUser(userInfo); + } + + @PostMapping("/userDelete") + @ResponseBody + public void userDelete(@RequestBody List userInfo) { + userInfoService.userDelete(userInfo); + } + +} diff --git a/src/main/java/com/dbnt/faisp/util/ParamMap.java b/src/main/java/com/dbnt/faisp/util/ParamMap.java new file mode 100644 index 0000000..87d6df3 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/util/ParamMap.java @@ -0,0 +1,190 @@ +package com.dbnt.faisp.util; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; + +@SuppressWarnings({"rawtypes","unchecked", "serial"}) +public class ParamMap extends HashMap { + + public ParamMap(){ + super(); + } + + public ParamMap(final String key, final Object value) { + super(); + + super.put(key, value); + } + + public ParamMap(final HttpServletRequest request) { + super(); + + setRequest(request); + } + + public void setRequest(HttpServletRequest request) { + + Enumeration enums = request.getParameterNames(); + while (enums.hasMoreElements()) { + String paramName = (String) enums.nextElement(); + String[] parameters = request.getParameterValues(paramName); + + // Parameter媛� 諛곗뿴�씪 寃쎌슦 + if (parameters.length > 1) { + this.put(paramName, parameters); + // Parameter媛� 諛곗뿴�씠 �븘�땶 寃쎌슦 + } else { + this.put(paramName, parameters[0]); + } + } + } + + public void set(String key, Object value) { + super.put(key, value); + } + + public void setTm(String key, Object value, String weeks) { + int week = Integer.parseInt(weeks); + String name = String.format("%02d", week); + super.put(key+name, value); + } + + public Object get(String key){ + return super.get(key); + } + + public String getString(String key) { + return getString(key, ""); + } + + public String getString(String key, String defaultValue) { + Object value = super.get(key); + String result = null; + if(value == null) { + result = defaultValue; + } else if(value instanceof String) { + result = (String)value; + } else if(value instanceof Integer || value instanceof Double || value instanceof Long || value instanceof BigDecimal) { + result = String.valueOf(value); + } else { + result = (String)value; + } + return result; + } + + public int getInt(String key) { + return getInt(key, 0); + } + + public int getInt(String key, int defaultValue) { + Object value = super.get(key); + int result = 0; + if(value == null) { + result = defaultValue; + } else if(value instanceof String) { + result = Integer.parseInt((String)value); + } else if(value instanceof Integer) { + result = (Integer)value; + } else if(value instanceof Double) { + result = ((Double)value).intValue(); + } else if(value instanceof Long) { + result = ((Long)value).intValue(); + } else if(value instanceof BigDecimal) { + result = ((BigDecimal)value).intValue(); + } else { + result = (int)value; + } + return result; + } + + public long getLong(String key) { + return getLong(key.replaceAll(",", ""), 0); + } + + public long getLong(String key, long defaultValue) { + long val = defaultValue; + try { + if(super.get(key) instanceof BigDecimal) { + val = Long.parseLong(((BigDecimal)super.get(key)).toString()); + } else { + val = Long.parseLong((String)super.get(key)); + } + } catch (NumberFormatException e) {} + + return val; + } + + public byte[] getByte(final String key) { + if(null != super.get(key)) { + try { + return (byte[])super.get(key); + } catch(Exception e) { + return new byte[0]; + } + } + + return new byte[0]; + } + + @Override + public String toString() { + String s = ""; + Set set = this.entrySet(); + for(Iterator it = set.iterator(); it.hasNext();) { + String key = it.next().toString(); + + s += "[" + key + "]"; + } + return s; + } + public String[] getValues(final String key){ + if(super.get(key) != null) { + try{ + Object obj = super.get(key); + if (obj instanceof ArrayList){ + ArrayList list = (ArrayList)obj; + return (String[])list.toArray(new String[0]); + }else if(obj instanceof String){ + String[] rv = {(String)obj}; + return rv; + }else{ + return (String[])obj; + } + } + catch(java.lang.ClassCastException e) { + String[] rv = {(String)super.get(key)}; + return rv; + } + catch(Exception ee) { + String[] rv = {(String)super.get(key)}; + return rv; + } + }else{ + return new String[0] ; + } + } + + + public String toQueryString() { + StringBuffer sb = new StringBuffer(); + + Set set = this.entrySet(); + Iterator keys = set.iterator(); + + boolean isFirst = true; + while (keys.hasNext()) { + String sKey = keys.next().toString(); + if (!isFirst) sb.append("&"); + sb.append(sKey); + isFirst = false; + } + + return sb.toString(); + } +} diff --git a/src/main/java/com/dbnt/faisp/util/Utils.java b/src/main/java/com/dbnt/faisp/util/Utils.java new file mode 100644 index 0000000..03c19b6 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/util/Utils.java @@ -0,0 +1,867 @@ +package com.dbnt.faisp.util; + + +import java.io.IOException; + +import java.io.PrintWriter; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.List; +import java.util.Map; + + +import javax.servlet.http.HttpServletResponse; + + +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.FillPatternType; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFDataFormat; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import com.dbnt.faisp.equip.model.CellPhone; +import com.dbnt.faisp.equip.model.UseList; +import com.dbnt.faisp.fipTarget.model.PartInfo; +import com.dbnt.faisp.fipTarget.model.PartWork; + + +public class Utils { + + + public static boolean isEmpty(final Object obj) { + return !isNotEmpty(obj); + } + + public static boolean isNotEmpty(final Object obj) { + if(null == obj) return false; + else { + if(obj instanceof String) return "".equals(obj) ? false : true; + else if(obj instanceof List) return !((List)obj).isEmpty(); + else if(obj instanceof Map) return !((Map)obj).isEmpty(); +// else if(obj instanceof Object[]) return 0 == Array.getLength(obj) ? false : true; + else if(obj instanceof Integer) return !(null == obj); + else if(obj instanceof Long) return !(null == obj); + else return false; + } + } + + public static String getTimeStampString(final String format) { + return getTimeStampString(new Date(), format); + } + + public static String getTimeStampString(final Date date) { + return getTimeStampString(date, "yyyyMMddHHmmss"); + } + + public static String getTimeStampString(final Date date, final String format){ + java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat (format, java.util.Locale.KOREA); + return formatter.format(date); + } + + public static String getTimeStampString(String date, final String format) { + try { + if(null == date || "".equals(date)) return ""; + + Date d = null; + date= date.replaceAll("-", ""); + + switch(date.length()) { + case 14: break; + case 12: date += "00"; break; + case 10: date += "0000"; break; + case 8: date += "000000"; break; + case 6: date += "01000000"; break; + case 4: date += "0101000000"; break; + default: return ""; + } + + java.text.SimpleDateFormat tmpFormat = new java.text.SimpleDateFormat("yyyyMMddHHmmss", java.util.Locale.KOREA); + + if("".equals(date)) d = new Date(); + else { + tmpFormat.setLenient(true); + d = tmpFormat.parse(date); + } + + return getTimeStampString(d, format); + } catch(Exception e) { + e.printStackTrace(); + return ""; + } + } + + public static String getFileExtention(final String filename) { + if(null == filename || "".equals(filename)) return ""; + + return -1 < filename.lastIndexOf(".") ? filename.substring(filename.lastIndexOf(".") + 1).toLowerCase() : ""; + } + + public static String generationSaveName() { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return Utils.getTimeStampString("yyyyMMdd_HHmmss_SSS"); + } + + public static void listToExcel(List list, HttpServletResponse response, String[] headers, String[] headerNames, String[] columnType, String sheetName, String excelFileName) throws IOException { + if(Utils.isNotEmpty(list)) { + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(sheetName); + Row headerRow = sheet.createRow(0); + CellStyle cellStyle1 = wb.createCellStyle(); //쉼표들어간 숫자 양식 + CellStyle cellStyle2 = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle = wb.createCellStyle(); //숫자양식 + + XSSFDataFormat format = wb.createDataFormat(); + cellStyle1.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setDataFormat(format.getFormat("#")); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle.setFillForegroundColor((short)3); + headerStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); + + for(int i=0; i"); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + + out.flush(); + out.close(); + } + + } + + public static void downExcel(List list, HttpServletResponse response, String[] headers, String[] headerNames,String[] headerNames2, String[] columnType, String sheetName, String excelFileName) throws IOException { + if(Utils.isNotEmpty(list)) { + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(sheetName); + Row headerRow = sheet.createRow(0); + Row headerRow2 = sheet.createRow(1); + CellStyle cellStyle1 = wb.createCellStyle(); //쉼표들어간 숫자 양식 + CellStyle cellStyle2 = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle2 = wb.createCellStyle(); + + XSSFDataFormat format = wb.createDataFormat(); + cellStyle1.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle.setFillForegroundColor((short)3); + headerStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); + + //로우그리기 + for(int i=0; i"); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + + out.flush(); + out.close(); + } + + } + + public static void downEquipStatusExcel(List list, HttpServletResponse response, String[] headers, String[] headerNames,String[] headerNames2, String[] columnType, String sheetName, String excelFileName) throws IOException { + if(Utils.isNotEmpty(list)) { + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(sheetName); + Row headerRow = sheet.createRow(0); + Row headerRow2 = sheet.createRow(1); + CellStyle cellStyle1 = wb.createCellStyle(); //쉼표들어간 숫자 양식 + CellStyle cellStyle2 = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle2 = wb.createCellStyle(); + CellStyle headerStyle3 = wb.createCellStyle(); + + XSSFDataFormat format = wb.createDataFormat(); + cellStyle1.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setBorderTop(BorderStyle.THIN); + headerStyle2.setBorderBottom(BorderStyle.THIN); + headerStyle2.setBorderLeft(BorderStyle.THIN); + headerStyle2.setBorderRight(BorderStyle.THIN); + headerStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle2.setFillForegroundColor((short)3); + headerStyle2.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle.setFillForegroundColor((short)3); + headerStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle3.setBorderTop(BorderStyle.THIN); + headerStyle3.setBorderBottom(BorderStyle.THIN); + headerStyle3.setBorderLeft(BorderStyle.THIN); + headerStyle3.setBorderRight(BorderStyle.THIN); + headerStyle3.setAlignment(HorizontalAlignment.CENTER); + headerStyle3.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle3.setFillForegroundColor((short)3); + headerStyle3.setFillForegroundColor(IndexedColors.LIME.getIndex()); + + + //로우그리기 + for(int i=0; i"); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + + out.flush(); + out.close(); + } + + } + + public static void partInfolistToExcel(List partInfoList, HttpServletResponse response, String[] headers, + String[] headerNames,String[] headerNames2,String[] headerNames3, String[] columnType, String sheetName, String excelFileName) throws IOException { + if(Utils.isNotEmpty(partInfoList)) { + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(sheetName); + Row headerRow = sheet.createRow(0); + Row headerRow2 = sheet.createRow(1); + Row headerRow3 = sheet.createRow(2); + CellStyle cellStyle1 = wb.createCellStyle(); //쉼표들어간 숫자 양식 + CellStyle cellStyle2 = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle2 = wb.createCellStyle(); + CellStyle headerStyle3 = wb.createCellStyle(); + + XSSFDataFormat format = wb.createDataFormat(); + cellStyle1.setAlignment(HorizontalAlignment.CENTER); + cellStyle2.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setBorderTop(BorderStyle.THIN); + headerStyle2.setBorderBottom(BorderStyle.THIN); + headerStyle2.setBorderLeft(BorderStyle.THIN); + headerStyle2.setBorderRight(BorderStyle.THIN); + headerStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle2.setFillForegroundColor((short)3); + headerStyle2.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle.setFillForegroundColor((short)3); + headerStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle3.setBorderTop(BorderStyle.THIN); + headerStyle3.setBorderBottom(BorderStyle.THIN); + headerStyle3.setBorderLeft(BorderStyle.THIN); + headerStyle3.setBorderRight(BorderStyle.THIN); + headerStyle3.setAlignment(HorizontalAlignment.CENTER); + headerStyle3.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle3.setFillForegroundColor((short)3); + headerStyle3.setFillForegroundColor(IndexedColors.LIME.getIndex()); + + //로우그리기 + for(int i=0; i"); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + + out.flush(); + out.close(); + } + } + + public static void partWorkListToExcel(List partWorkList, HttpServletResponse response, String[] headers, + String[] headerNames, String[] headerNames2, String[] columnType, String sheetName, String excelFileName) throws IOException { + if(Utils.isNotEmpty(partWorkList)) { + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(sheetName); + Row headerRow = sheet.createRow(0); + Row headerRow2 = sheet.createRow(1); + CellStyle cellStyle1 = wb.createCellStyle(); //쉼표들어간 숫자 양식 + CellStyle cellStyle2 = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle2 = wb.createCellStyle(); + CellStyle headerStyle3 = wb.createCellStyle(); + + XSSFDataFormat format = wb.createDataFormat(); + cellStyle1.setAlignment(HorizontalAlignment.CENTER); + cellStyle2.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setBorderTop(BorderStyle.THIN); + headerStyle2.setBorderBottom(BorderStyle.THIN); + headerStyle2.setBorderLeft(BorderStyle.THIN); + headerStyle2.setBorderRight(BorderStyle.THIN); + headerStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle2.setFillForegroundColor((short)3); + headerStyle2.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle.setFillForegroundColor((short)3); + headerStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle3.setBorderTop(BorderStyle.THIN); + headerStyle3.setBorderBottom(BorderStyle.THIN); + headerStyle3.setBorderLeft(BorderStyle.THIN); + headerStyle3.setBorderRight(BorderStyle.THIN); + headerStyle3.setAlignment(HorizontalAlignment.CENTER); + headerStyle3.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle3.setFillForegroundColor((short)3); + headerStyle3.setFillForegroundColor(IndexedColors.LIME.getIndex()); + //로우그리기 + for(int i=0; i 0) { + rowData.set("file_cnt", "●"); + }else { + rowData.set("file_cnt", ""); + } + rowData.set("wrt_dt", partWorkList.get(i).getWrtDt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))); + for(int j=0; j"); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + + out.flush(); + out.close(); + } + + } + + public static void cellPhoneListToExcel(List cellPhoneList, HttpServletResponse response, + String[] headers, String[] headerNames, String[] columnType, String sheetName, String excelFileName) throws IOException { + if(Utils.isNotEmpty(cellPhoneList)) { + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(sheetName); + Row headerRow = sheet.createRow(0); + CellStyle cellStyle1 = wb.createCellStyle(); //쉼표들어간 숫자 양식 + CellStyle cellStyle2 = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle2 = wb.createCellStyle(); + CellStyle headerStyle3 = wb.createCellStyle(); + + XSSFDataFormat format = wb.createDataFormat(); + cellStyle1.setAlignment(HorizontalAlignment.CENTER); + cellStyle2.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setBorderTop(BorderStyle.THIN); + headerStyle2.setBorderBottom(BorderStyle.THIN); + headerStyle2.setBorderLeft(BorderStyle.THIN); + headerStyle2.setBorderRight(BorderStyle.THIN); + headerStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle2.setFillForegroundColor((short)3); + headerStyle2.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle.setFillForegroundColor((short)3); + headerStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle3.setBorderTop(BorderStyle.THIN); + headerStyle3.setBorderBottom(BorderStyle.THIN); + headerStyle3.setBorderLeft(BorderStyle.THIN); + headerStyle3.setBorderRight(BorderStyle.THIN); + headerStyle3.setAlignment(HorizontalAlignment.CENTER); + headerStyle3.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle3.setFillForegroundColor((short)3); + headerStyle3.setFillForegroundColor(IndexedColors.LIME.getIndex()); + //로우그리기 + for(int i=0; i"); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + + out.flush(); + out.close(); + } + + } + + public static void useListToExcel(List useExcelList, HttpServletResponse response, String[] headers, + String[] headerNames, String[] columnType, String sheetName, String excelFileName) throws IOException { + if(Utils.isNotEmpty(useExcelList)) { + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(sheetName); + Row headerRow = sheet.createRow(0); + CellStyle cellStyle1 = wb.createCellStyle(); //쉼표들어간 숫자 양식 + CellStyle cellStyle2 = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle = wb.createCellStyle(); //숫자양식 + CellStyle headerStyle2 = wb.createCellStyle(); + CellStyle headerStyle3 = wb.createCellStyle(); + + XSSFDataFormat format = wb.createDataFormat(); + cellStyle1.setAlignment(HorizontalAlignment.CENTER); + cellStyle2.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setBorderTop(BorderStyle.THIN); + headerStyle2.setBorderBottom(BorderStyle.THIN); + headerStyle2.setBorderLeft(BorderStyle.THIN); + headerStyle2.setBorderRight(BorderStyle.THIN); + headerStyle2.setAlignment(HorizontalAlignment.CENTER); + headerStyle2.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle2.setFillForegroundColor((short)3); + headerStyle2.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle.setFillForegroundColor((short)3); + headerStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle3.setBorderTop(BorderStyle.THIN); + headerStyle3.setBorderBottom(BorderStyle.THIN); + headerStyle3.setBorderLeft(BorderStyle.THIN); + headerStyle3.setBorderRight(BorderStyle.THIN); + headerStyle3.setAlignment(HorizontalAlignment.CENTER); + headerStyle3.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle3.setFillForegroundColor((short)3); + headerStyle3.setFillForegroundColor(IndexedColors.LIME.getIndex()); + //로우그리기 + for(int i=0; i"); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + out.write(""); + + out.flush(); + out.close(); + } + + } + + + + +} diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties new file mode 100644 index 0000000..bf66644 --- /dev/null +++ b/src/main/resources/application-dev.properties @@ -0,0 +1,34 @@ +spring.devtools.livereload.enabled=true + +#file upload +spring.servlet.multipart.location=C:\\faispUploadFiles +spring.servlet.multipart.max-file-size=200MB +spring.servlet.multipart.max-request-size=500MB + +#thymeleaf +spring.thymeleaf.prefix=classpath:templates/ +spring.thymeleaf.check-template-location=true +spring.thymeleaf.suffix=.html +spring.thymeleaf.mode=HTML +spring.thymeleaf.cache=false + +#Datasource Configuration +spring.datasource.hikari.maximum-pool-size=4 +spring.sql.init.encoding=utf-8 +spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy +#spring.datasource.driverClassName=org.postgresql.Driver +spring.datasource.url=jdbc:log4jdbc:postgresql://118.219.150.34:50503/faisp +#spring.datasource.url=jdbc:postgresql://106.247.244.146:50503/faisp +spring.datasource.username=dbnt0031 +spring.datasource.password=dbnt0928! + +#jpa +spring.jpa.show-sql=true +spring.jpa.generate-ddl=false +spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl + +# MyBatis +mybatis.mapper-locations: mybatisMapper/*.xml +mybatis.configuration.map-underscore-to-camel-case=true +mybatis.type-aliases-package=com.dbnt.faisp.**.model +logging.level.com.atoz_develop.mybatissample.repository=TRACE \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties new file mode 100644 index 0000000..d37a8f0 --- /dev/null +++ b/src/main/resources/application-test.properties @@ -0,0 +1,32 @@ + +#file upload +spring.servlet.multipart.location=/docker/faisp/uploadFiles +spring.servlet.multipart.max-file-size=200MB +spring.servlet.multipart.max-request-size=500MB + +#thymeleaf +spring.thymeleaf.prefix=classpath:templates/ +spring.thymeleaf.check-template-location=true +spring.thymeleaf.suffix=.html +spring.thymeleaf.mode=HTML + +#Datasource Configuration +spring.datasource.hikari.maximum-pool-size=4 +spring.sql.init.encoding=utf-8 +#spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy +spring.datasource.driverClassName=org.postgresql.Driver +#spring.datasource.url=jdbc:log4jdbc:postgresql://118.219.150.34:50503/faisp +spring.datasource.url=jdbc:postgresql://118.219.150.34:50503/faisp +spring.datasource.username=dbnt0031 +spring.datasource.password=dbnt0928! + +#jpa +spring.jpa.show-sql=false +spring.jpa.generate-ddl=false +spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl + +# MyBatis +mybatis.mapper-locations: mybatisMapper/*.xml +mybatis.configuration.map-underscore-to-camel-case=true +mybatis.type-aliases-package=com.dbnt.faisp.**.model +logging.level.com.atoz_develop.mybatissample.repository=TRACE \ No newline at end of file diff --git a/src/main/resources/log4jdbc.log4j2.properties b/src/main/resources/log4jdbc.log4j2.properties new file mode 100644 index 0000000..a48b3e9 --- /dev/null +++ b/src/main/resources/log4jdbc.log4j2.properties @@ -0,0 +1,2 @@ +log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator +log4jdbc.dump.sql.maxlinelength=0 \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/AffairMapper.xml b/src/main/resources/mybatisMapper/AffairMapper.xml new file mode 100644 index 0000000..62e1dba --- /dev/null +++ b/src/main/resources/mybatisMapper/AffairMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + and a.affair_category = #{affairCategory} + + + and a.wrt_user_seq = #{wrtUserSeq} + + + and a.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + and a.wrt_organ = #{wrtOrgan} + + + and a.affair_type1 = #{affairType1} + + + and a.affair_type2 = #{affairType2} + + + and a.affair_type3 = #{affairType3} + + + and a.affair_type4 = #{affairType4} + + + and a.title like '%'||#{title}||'%' + + + and c.affair_status = #{affairStatus} + + + and a.wrt_dt >= #{startDate}::date + + + and a.wrt_dt <= #{endDate}::date+1 + + + and c.rating_organ = #{ratingOrgan} + + + and a.wrt_organ in + + #{organCd} + + + + + and c.affair_status in ('DST002', 'DST004') + + + and c.affair_status in ('DST003', 'DST005', 'DST006') + + + and c.affair_status in ('DST003', 'DST004', 'DST005', 'DST006') + + + and c.affair_status in ('DST003', 'DST005', 'DST006') + + + and c.affair_status in ('DST002', 'DST004') + + + and c.affair_status in ('DST003', 'DST005', 'DST006') + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/AuthMgtMapper.xml b/src/main/resources/mybatisMapper/AuthMgtMapper.xml new file mode 100644 index 0000000..cbd7888 --- /dev/null +++ b/src/main/resources/mybatisMapper/AuthMgtMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/BoardInvestigationMapper.xml b/src/main/resources/mybatisMapper/BoardInvestigationMapper.xml new file mode 100644 index 0000000..0c5f6c4 --- /dev/null +++ b/src/main/resources/mybatisMapper/BoardInvestigationMapper.xml @@ -0,0 +1,112 @@ + + + + + + + + + AND ivsgt_type = #{ivsgtType} + + + AND a.wrt_nm LIKE '%'||#{wrtNm}||'%' + + + AND a.wrt_organ = #{wrtOrgan} + + + AND a.content_title LIKE '%'||#{contentTitle}||'%' + + + + And a.wrt_dt >= #{startDate}::DATE + + + AND a.wrt_dt <= #{endDate}::DATE+1 + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/EquipMapper.xml b/src/main/resources/mybatisMapper/EquipMapper.xml new file mode 100644 index 0000000..2bc02ba --- /dev/null +++ b/src/main/resources/mybatisMapper/EquipMapper.xml @@ -0,0 +1,612 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ul.mgt_organ = #{mgtOrgan} + + + and ul.use_no like '%'||#{useNo}||'%' + + + and ul.detail_type = #{detailType} + + + + and ul.use_dt >= #{startDate}::date + + + and ul.use_dt <= #{endDate}::date+1 + + + + + and ul.wrt_dt >= #{startDate}::date + + + and ul.wrt_dt <= #{endDate}::date+1 + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/FaRptMapper.xml b/src/main/resources/mybatisMapper/FaRptMapper.xml new file mode 100644 index 0000000..b7753e5 --- /dev/null +++ b/src/main/resources/mybatisMapper/FaRptMapper.xml @@ -0,0 +1,60 @@ + + + + + + + + + and a.wrt_user_seq = #{wrtUserSeq} + + + and a.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + and a.wrt_organ = #{wrtOrgan} + + + and a.title like '%'||#{title}||'%' + + + and a.wrt_dt >= #{startDate}::date + + + and a.wrt_dt <= #{endDate}::date+1 + + + and a.wrt_organ in + + #{organCd} + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/FipTarget.xml b/src/main/resources/mybatisMapper/FipTarget.xml new file mode 100644 index 0000000..ae8a44a --- /dev/null +++ b/src/main/resources/mybatisMapper/FipTarget.xml @@ -0,0 +1,532 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/InternationalCrimeArrestMapper.xml b/src/main/resources/mybatisMapper/InternationalCrimeArrestMapper.xml new file mode 100644 index 0000000..51a0ffe --- /dev/null +++ b/src/main/resources/mybatisMapper/InternationalCrimeArrestMapper.xml @@ -0,0 +1,96 @@ + + + + + + + + + AND organ = #{organ} + + + AND department = #{department} + + + AND crime_type = #{crimeType} + + + AND violation_type = #{violationType} + + + AND case_num = #{caseNum} + + + AND crime_name LIKE CONCAT('%', #{crimeName}, '%') + + + + And wrt_dt >= #{startDate}::DATE + + + AND wrt_dt <= #{endDate}::DATE+1 + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/OrganConfigMapper.xml b/src/main/resources/mybatisMapper/OrganConfigMapper.xml new file mode 100644 index 0000000..220a26b --- /dev/null +++ b/src/main/resources/mybatisMapper/OrganConfigMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/PlanMapper.xml b/src/main/resources/mybatisMapper/PlanMapper.xml new file mode 100644 index 0000000..eadd571 --- /dev/null +++ b/src/main/resources/mybatisMapper/PlanMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + and a.wrt_user_seq = #{wrtUserSeq} + + + and a.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + and a.wrt_organ = #{wrtOrgan} + + + and a.content_title like '%'||#{contentTitle}||'%' + + + and a.plan_state = #{planState} + + + + and a.plan_dt >= #{startDate}::date + + + and a.plan_dt <= #{endDate}::date+1 + + + + + and a.wrt_dt >= #{startDate}::date + + + and a.wrt_dt <= #{endDate}::date+1 + + + + and a.wrt_organ in + + #{organCd} + + + + + and a.plan_state in ('DST002', 'DST004') + + + and a.plan_state in ('DST003', 'DST005', 'DST006') + + + and a.plan_state in ('DST003', 'DST004', 'DST005', 'DST006') + + + and a.plan_state in ('DST003', 'DST005', 'DST006') + + + and a.plan_state in ('DST002', 'DST004') + + + and a.plan_state in ('DST003', 'DST005', 'DST006') + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/PublicBoardMapper.xml b/src/main/resources/mybatisMapper/PublicBoardMapper.xml new file mode 100644 index 0000000..ccd45bd --- /dev/null +++ b/src/main/resources/mybatisMapper/PublicBoardMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + and a.public_type = #{publicType} + + + and a.wrt_organ = #{wrtOrgan} + + + AND a.title LIKE CONCAT('%', #{title}, '%') + + + and a.wrt_dt >= #{startDate}::date + + + and a.wrt_dt <= #{endDate}::date+1 + + + and a.tab_status = #{tabStatus} + + + and a.public_key in ( + + select public_key from public_board where wrt_organ in + + #{organCd} + + + + union all + + + select public_key from public_board where organ_chk = 'F' and wrt_organ in + + #{organCd} + + + ) + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/ResultMapper.xml b/src/main/resources/mybatisMapper/ResultMapper.xml new file mode 100644 index 0000000..c978afd --- /dev/null +++ b/src/main/resources/mybatisMapper/ResultMapper.xml @@ -0,0 +1,108 @@ + + + + + + + + + and a.wrt_user_seq = #{wrtUserSeq} + + + and a.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + and a.wrt_organ = #{wrtOrgan} + + + and a.clear_title like '%'||#{clearTitle}||'%' + + + and a.result_title like '%'||#{resultTitle}||'%' + + + and a.result_state = #{resultState} + + + and a.wrt_dt >= #{startDate}::date + + + and a.wrt_dt <= #{endDate}::date+1 + + + and a.wrt_organ in + + #{organCd} + + + + + and a.result_state in ('DST002', 'DST004') + + + and a.result_state in ('DST003', 'DST005', 'DST006') + + + and a.result_state in ('DST003', 'DST004', 'DST005', 'DST006') + + + and a.result_state in ('DST003', 'DST005', 'DST006') + + + and a.result_state in ('DST002', 'DST004') + + + and a.result_state in ('DST003', 'DST005', 'DST006') + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/TranslatorMapper.xml b/src/main/resources/mybatisMapper/TranslatorMapper.xml new file mode 100644 index 0000000..27cc1e3 --- /dev/null +++ b/src/main/resources/mybatisMapper/TranslatorMapper.xml @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/UserInfoMapper.xml b/src/main/resources/mybatisMapper/UserInfoMapper.xml new file mode 100644 index 0000000..b187afe --- /dev/null +++ b/src/main/resources/mybatisMapper/UserInfoMapper.xml @@ -0,0 +1,77 @@ + + + + + + + + + + user_status = #{userStatus} + + + user_status != 'D' + + + + and user_id like '%'||#{userId}||'%' + + + and user_nm like '%'||#{userNm}||'%' + + + and og_cd = #{ogCd} + + + and ofc_cd = #{ofcCd} + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/menuMgtMapper.xml b/src/main/resources/mybatisMapper/menuMgtMapper.xml new file mode 100644 index 0000000..214e5da --- /dev/null +++ b/src/main/resources/mybatisMapper/menuMgtMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + and cat1_cd = #{cat1Cd} + + + and cat2_cd = #{cat2Cd} + + + and cat3_cd = #{cat3Cd} + + + and menu_url like '%'||#{menuUrl}||'%' + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/css/common.css b/src/main/resources/static/css/common.css new file mode 100644 index 0000000..fd8f5e8 --- /dev/null +++ b/src/main/resources/static/css/common.css @@ -0,0 +1,36 @@ +#fadeDiv{ + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-color: #00000050; + z-index: 2090; +} + +#fadeDiv > div{ + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + background-color: #ffffff; +} + +.activeTr{ + --bs-bg-opacity: 0.25; + background-color: rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important; +} + +.menuDiv{ + width: 250px; + position: absolute; + top: 0; + left: 180px; + z-index: 100; + border-left: 1px solid; + border-right: 1px solid; +} + +.modal-xxl{ + --bs-modal-width : 1440px; +} \ No newline at end of file diff --git a/src/main/resources/static/css/login/login.css b/src/main/resources/static/css/login/login.css new file mode 100644 index 0000000..2f403a2 --- /dev/null +++ b/src/main/resources/static/css/login/login.css @@ -0,0 +1,35 @@ +/*로그인 폼*/ +.form-signin{ + width: 100%; + max-width: 330px; + padding: 15px; + margin: auto; + position: absolute; + z-index: 200; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + border-radius: 10px; +} + +header{ + z-index:300; + background-color: white; +} + +body{ + overflow: hidden; +} + +/*스크롤기능 있지만 안보이게*/ +body::-webkit-scrollbar { + display: none; +} + +#logo{ + z-index:300; +} + +footer{ + z-index:200; +} diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/1-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/1-circle-fill.svg new file mode 100644 index 0000000..5141c8f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/1-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/1-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/1-circle.svg new file mode 100644 index 0000000..785af34 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/1-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/1-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/1-square-fill.svg new file mode 100644 index 0000000..de579e6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/1-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/1-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/1-square.svg new file mode 100644 index 0000000..4f57d79 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/1-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/123.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/123.svg new file mode 100644 index 0000000..3ee3396 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/123.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/2-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/2-circle-fill.svg new file mode 100644 index 0000000..03a9251 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/2-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/2-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/2-circle.svg new file mode 100644 index 0000000..fea4a56 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/2-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/2-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/2-square-fill.svg new file mode 100644 index 0000000..a89e1f7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/2-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/2-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/2-square.svg new file mode 100644 index 0000000..558c78b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/2-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/3-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/3-circle-fill.svg new file mode 100644 index 0000000..06d2ea5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/3-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/3-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/3-circle.svg new file mode 100644 index 0000000..23c3479 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/3-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/3-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/3-square-fill.svg new file mode 100644 index 0000000..c6890a3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/3-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/3-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/3-square.svg new file mode 100644 index 0000000..b56b684 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/3-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/4-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/4-circle-fill.svg new file mode 100644 index 0000000..199a5e2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/4-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/4-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/4-circle.svg new file mode 100644 index 0000000..3af547d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/4-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/4-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/4-square-fill.svg new file mode 100644 index 0000000..03b0f94 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/4-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/4-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/4-square.svg new file mode 100644 index 0000000..dd85455 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/4-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/5-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/5-circle-fill.svg new file mode 100644 index 0000000..e940e98 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/5-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/5-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/5-circle.svg new file mode 100644 index 0000000..47eefd0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/5-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/5-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/5-square-fill.svg new file mode 100644 index 0000000..1a87860 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/5-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/5-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/5-square.svg new file mode 100644 index 0000000..9c54c77 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/5-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/6-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/6-circle-fill.svg new file mode 100644 index 0000000..18f66ef --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/6-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/6-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/6-circle.svg new file mode 100644 index 0000000..ab5f748 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/6-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/6-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/6-square-fill.svg new file mode 100644 index 0000000..d67fa52 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/6-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/6-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/6-square.svg new file mode 100644 index 0000000..79762c8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/6-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/7-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/7-circle-fill.svg new file mode 100644 index 0000000..bb4522b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/7-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/7-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/7-circle.svg new file mode 100644 index 0000000..0dc4685 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/7-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/7-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/7-square-fill.svg new file mode 100644 index 0000000..8a4789c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/7-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/7-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/7-square.svg new file mode 100644 index 0000000..a314c4a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/7-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/8-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/8-circle-fill.svg new file mode 100644 index 0000000..15cd6b4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/8-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/8-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/8-circle.svg new file mode 100644 index 0000000..fb14542 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/8-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/8-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/8-square-fill.svg new file mode 100644 index 0000000..766d42a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/8-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/8-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/8-square.svg new file mode 100644 index 0000000..f450b17 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/8-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/9-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/9-circle-fill.svg new file mode 100644 index 0000000..6ebd865 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/9-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/9-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/9-circle.svg new file mode 100644 index 0000000..7c97f29 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/9-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/9-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/9-square-fill.svg new file mode 100644 index 0000000..daee3e8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/9-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/9-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/9-square.svg new file mode 100644 index 0000000..ade9233 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/9-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/activity.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/activity.svg new file mode 100644 index 0000000..1c45d1b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/activity.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-engines-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-engines-fill.svg new file mode 100644 index 0000000..b58d49f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-engines-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-engines.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-engines.svg new file mode 100644 index 0000000..78b7934 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-engines.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-fill.svg new file mode 100644 index 0000000..c8f2fce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane.svg new file mode 100644 index 0000000..2e04c92 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/airplane.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/alarm-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/alarm-fill.svg new file mode 100644 index 0000000..bec569f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/alarm-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/alarm.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/alarm.svg new file mode 100644 index 0000000..53f7cbe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/alarm.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/alexa.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/alexa.svg new file mode 100644 index 0000000..a68f1d9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/alexa.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/align-bottom.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-bottom.svg new file mode 100644 index 0000000..d9484c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-bottom.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/align-center.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-center.svg new file mode 100644 index 0000000..af0d75b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-center.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/align-end.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-end.svg new file mode 100644 index 0000000..28f861d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-end.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/align-middle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-middle.svg new file mode 100644 index 0000000..95c6598 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-middle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/align-start.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-start.svg new file mode 100644 index 0000000..a72ba98 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-start.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/align-top.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-top.svg new file mode 100644 index 0000000..d2934f5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/align-top.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/alipay.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/alipay.svg new file mode 100644 index 0000000..df7def9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/alipay.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/alt.svg new file mode 100644 index 0000000..22b7886 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/android.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/android.svg new file mode 100644 index 0000000..d890952 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/android.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/android2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/android2.svg new file mode 100644 index 0000000..37613cc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/android2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/app-indicator.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/app-indicator.svg new file mode 100644 index 0000000..450a011 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/app-indicator.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/app.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/app.svg new file mode 100644 index 0000000..819df1b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/app.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/apple.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/apple.svg new file mode 100644 index 0000000..b8bc2a0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/apple.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/archive-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/archive-fill.svg new file mode 100644 index 0000000..077aa29 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/archive-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/archive.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/archive.svg new file mode 100644 index 0000000..b41be30 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/archive.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-down.svg new file mode 100644 index 0000000..1193b5d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-left.svg new file mode 100644 index 0000000..1656b22 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-right.svg new file mode 100644 index 0000000..a7d32ce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-up.svg new file mode 100644 index 0000000..6c95e3d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-90deg-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-down.svg new file mode 100644 index 0000000..fe18e39 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-left.svg new file mode 100644 index 0000000..f53a1fd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-right.svg new file mode 100644 index 0000000..5019863 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-up.svg new file mode 100644 index 0000000..090b6bd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-bar-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-clockwise.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-clockwise.svg new file mode 100644 index 0000000..b072eb0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-clockwise.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-counterclockwise.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-counterclockwise.svg new file mode 100644 index 0000000..b0b23b9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-counterclockwise.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-circle-fill.svg new file mode 100644 index 0000000..8e837c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-circle.svg new file mode 100644 index 0000000..fe215b9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-circle-fill.svg new file mode 100644 index 0000000..bcebc12 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-circle.svg new file mode 100644 index 0000000..8b52276 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-square-fill.svg new file mode 100644 index 0000000..57c099f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-square.svg new file mode 100644 index 0000000..08e0028 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left.svg new file mode 100644 index 0000000..96a6b08 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-circle-fill.svg new file mode 100644 index 0000000..35ab8c2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-circle.svg new file mode 100644 index 0000000..1cd51bc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-square-fill.svg new file mode 100644 index 0000000..3ccff9b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-square.svg new file mode 100644 index 0000000..5019b26 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right.svg new file mode 100644 index 0000000..80487bd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-short.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-short.svg new file mode 100644 index 0000000..2fda340 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-short.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-square-fill.svg new file mode 100644 index 0000000..ea8f14b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-square.svg new file mode 100644 index 0000000..633671f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-up.svg new file mode 100644 index 0000000..a128d9b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down.svg new file mode 100644 index 0000000..1344ca9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-circle-fill.svg new file mode 100644 index 0000000..2eebe62 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-circle.svg new file mode 100644 index 0000000..39f86b8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-right.svg new file mode 100644 index 0000000..8aabd7b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-short.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-short.svg new file mode 100644 index 0000000..13005fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-short.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-square-fill.svg new file mode 100644 index 0000000..76dbe9e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-square.svg new file mode 100644 index 0000000..4db19b3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left.svg new file mode 100644 index 0000000..9d88501 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-repeat.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-repeat.svg new file mode 100644 index 0000000..d0d7154 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-repeat.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-return-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-return-left.svg new file mode 100644 index 0000000..f6b125e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-return-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-return-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-return-right.svg new file mode 100644 index 0000000..228e24b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-return-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-circle-fill.svg new file mode 100644 index 0000000..336a34e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-circle.svg new file mode 100644 index 0000000..1339b52 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-short.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-short.svg new file mode 100644 index 0000000..4626398 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-short.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-square-fill.svg new file mode 100644 index 0000000..55285eb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-square.svg new file mode 100644 index 0000000..7209ead --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right.svg new file mode 100644 index 0000000..d4b878b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-through-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-through-heart-fill.svg new file mode 100644 index 0000000..1b3c30f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-through-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-through-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-through-heart.svg new file mode 100644 index 0000000..f352870 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-through-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-circle-fill.svg new file mode 100644 index 0000000..ab0a54c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-circle.svg new file mode 100644 index 0000000..9923ae3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-circle-fill.svg new file mode 100644 index 0000000..df6e194 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-circle.svg new file mode 100644 index 0000000..dfdaf71 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-square-fill.svg new file mode 100644 index 0000000..220169d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-square.svg new file mode 100644 index 0000000..9d3767f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left.svg new file mode 100644 index 0000000..da5bb6c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-circle-fill.svg new file mode 100644 index 0000000..ba547c8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-circle.svg new file mode 100644 index 0000000..f2fcabc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-square-fill.svg new file mode 100644 index 0000000..7454537 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-square.svg new file mode 100644 index 0000000..9754423 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right.svg new file mode 100644 index 0000000..6924a38 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-short.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-short.svg new file mode 100644 index 0000000..3863f15 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-short.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-square-fill.svg new file mode 100644 index 0000000..bb51b25 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-square.svg new file mode 100644 index 0000000..d21f03e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up.svg new file mode 100644 index 0000000..c46d49e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrow-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-angle-contract.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-angle-contract.svg new file mode 100644 index 0000000..d140e19 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-angle-contract.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-angle-expand.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-angle-expand.svg new file mode 100644 index 0000000..3697f60 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-angle-expand.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-collapse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-collapse.svg new file mode 100644 index 0000000..353eed6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-collapse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-expand.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-expand.svg new file mode 100644 index 0000000..9880f25 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-expand.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-fullscreen.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-fullscreen.svg new file mode 100644 index 0000000..dc0acc3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-fullscreen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-move.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-move.svg new file mode 100644 index 0000000..eef62ef --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/arrows-move.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/aspect-ratio-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/aspect-ratio-fill.svg new file mode 100644 index 0000000..81dcfcb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/aspect-ratio-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/aspect-ratio.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/aspect-ratio.svg new file mode 100644 index 0000000..66719a7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/aspect-ratio.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/asterisk.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/asterisk.svg new file mode 100644 index 0000000..8b0a9da --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/asterisk.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/at.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/at.svg new file mode 100644 index 0000000..4a85e14 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/at.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/award-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/award-fill.svg new file mode 100644 index 0000000..6b58996 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/award-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/award.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/award.svg new file mode 100644 index 0000000..8f572ff --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/award.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/back.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/back.svg new file mode 100644 index 0000000..4c6cbcb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/back.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-fill.svg new file mode 100644 index 0000000..ab63109 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-reverse-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-reverse-fill.svg new file mode 100644 index 0000000..ed509ec --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-reverse-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-reverse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-reverse.svg new file mode 100644 index 0000000..446e019 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace-reverse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace.svg new file mode 100644 index 0000000..55c802c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/backspace.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-3d-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-3d-fill.svg new file mode 100644 index 0000000..ac61cb5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-3d-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-3d.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-3d.svg new file mode 100644 index 0000000..3485837 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-3d.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-4k-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-4k-fill.svg new file mode 100644 index 0000000..f353033 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-4k-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-4k.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-4k.svg new file mode 100644 index 0000000..24ddcb1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-4k.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-8k-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-8k-fill.svg new file mode 100644 index 0000000..1e1d4c1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-8k-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-8k.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-8k.svg new file mode 100644 index 0000000..7df4c75 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-8k.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ad-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ad-fill.svg new file mode 100644 index 0000000..b383de6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ad-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ad.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ad.svg new file mode 100644 index 0000000..942b018 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ad.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ar-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ar-fill.svg new file mode 100644 index 0000000..f98caac --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ar-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ar.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ar.svg new file mode 100644 index 0000000..2210506 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-ar.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-cc-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-cc-fill.svg new file mode 100644 index 0000000..d9783fe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-cc-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-cc.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-cc.svg new file mode 100644 index 0000000..7868cb4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-cc.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-hd-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-hd-fill.svg new file mode 100644 index 0000000..9f0a498 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-hd-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-hd.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-hd.svg new file mode 100644 index 0000000..e3f4ae7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-hd.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-sd-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-sd-fill.svg new file mode 100644 index 0000000..538b642 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-sd-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-sd.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-sd.svg new file mode 100644 index 0000000..68667dd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-sd.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-tm-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-tm-fill.svg new file mode 100644 index 0000000..7d334ce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-tm-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-tm.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-tm.svg new file mode 100644 index 0000000..452dd3b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-tm.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vo-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vo-fill.svg new file mode 100644 index 0000000..1f74e75 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vo-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vo.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vo.svg new file mode 100644 index 0000000..500d98f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vo.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vr-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vr-fill.svg new file mode 100644 index 0000000..6cde11f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vr-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vr.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vr.svg new file mode 100644 index 0000000..5c06852 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-vr.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-wc-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-wc-fill.svg new file mode 100644 index 0000000..47db37b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-wc-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-wc.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-wc.svg new file mode 100644 index 0000000..3f0cc5b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/badge-wc.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-check-fill.svg new file mode 100644 index 0000000..a1ba2d2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-check.svg new file mode 100644 index 0000000..c6ad9ac --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-dash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-dash-fill.svg new file mode 100644 index 0000000..a739242 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-dash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-dash.svg new file mode 100644 index 0000000..9bcb202 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-fill.svg new file mode 100644 index 0000000..1a1e2e2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-heart-fill.svg new file mode 100644 index 0000000..a859e05 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-heart.svg new file mode 100644 index 0000000..2a6bd30 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-plus-fill.svg new file mode 100644 index 0000000..a110b32 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-plus.svg new file mode 100644 index 0000000..b99a1a5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-x-fill.svg new file mode 100644 index 0000000..879bffe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-x.svg new file mode 100644 index 0000000..616532c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bag.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag.svg new file mode 100644 index 0000000..603de5f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bag.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-fill.svg new file mode 100644 index 0000000..b663894 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-heart-fill.svg new file mode 100644 index 0000000..cebfb93 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-heart.svg new file mode 100644 index 0000000..dadf467 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon.svg new file mode 100644 index 0000000..6ca06c3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/balloon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bandaid-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bandaid-fill.svg new file mode 100644 index 0000000..41d350a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bandaid-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bandaid.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bandaid.svg new file mode 100644 index 0000000..de16de9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bandaid.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bank.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bank.svg new file mode 100644 index 0000000..264eaaa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bank.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bank2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bank2.svg new file mode 100644 index 0000000..b03840c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bank2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-fill.svg new file mode 100644 index 0000000..23ba4f6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-line-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-line-fill.svg new file mode 100644 index 0000000..a5059c4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-line-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-line.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-line.svg new file mode 100644 index 0000000..e3f0cf2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-line.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-steps.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-steps.svg new file mode 100644 index 0000000..933fba8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart-steps.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart.svg new file mode 100644 index 0000000..c34c0d4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bar-chart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/basket-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket-fill.svg new file mode 100644 index 0000000..ebf223c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/basket.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket.svg new file mode 100644 index 0000000..4bc584b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/basket2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket2-fill.svg new file mode 100644 index 0000000..9ebf8db --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/basket2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket2.svg new file mode 100644 index 0000000..94f0bcb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/basket3-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket3-fill.svg new file mode 100644 index 0000000..e26f0ee --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/basket3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket3.svg new file mode 100644 index 0000000..ac46c01 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/basket3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-charging.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-charging.svg new file mode 100644 index 0000000..cbd9107 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-charging.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-full.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-full.svg new file mode 100644 index 0000000..48cf92e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-full.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-half.svg new file mode 100644 index 0000000..8c3afca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/battery-half.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/battery.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/battery.svg new file mode 100644 index 0000000..1260360 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/battery.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/behance.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/behance.svg new file mode 100644 index 0000000..a6a2c42 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/behance.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-fill.svg new file mode 100644 index 0000000..76d9b60 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-slash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-slash-fill.svg new file mode 100644 index 0000000..2e6f8cf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-slash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-slash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-slash.svg new file mode 100644 index 0000000..eddbb8a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bell-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bell.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bell.svg new file mode 100644 index 0000000..585d417 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bell.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bezier.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bezier.svg new file mode 100644 index 0000000..21ec7b3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bezier.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bezier2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bezier2.svg new file mode 100644 index 0000000..48722d0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bezier2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bicycle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bicycle.svg new file mode 100644 index 0000000..17a2105 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bicycle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/binoculars-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/binoculars-fill.svg new file mode 100644 index 0000000..de09c73 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/binoculars-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/binoculars.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/binoculars.svg new file mode 100644 index 0000000..47bca44 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/binoculars.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/blockquote-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/blockquote-left.svg new file mode 100644 index 0000000..f2e0fa2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/blockquote-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/blockquote-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/blockquote-right.svg new file mode 100644 index 0000000..253518d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/blockquote-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bluetooth.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bluetooth.svg new file mode 100644 index 0000000..5021e77 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bluetooth.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/body-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/body-text.svg new file mode 100644 index 0000000..81ede13 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/body-text.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/book-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/book-fill.svg new file mode 100644 index 0000000..276a281 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/book-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/book-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/book-half.svg new file mode 100644 index 0000000..76589a5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/book-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/book.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/book.svg new file mode 100644 index 0000000..f0e5e49 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/book.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-check-fill.svg new file mode 100644 index 0000000..039e455 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-check.svg new file mode 100644 index 0000000..b1f572f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-dash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-dash-fill.svg new file mode 100644 index 0000000..e171192 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-dash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-dash.svg new file mode 100644 index 0000000..1138dbb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-fill.svg new file mode 100644 index 0000000..9466102 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-heart-fill.svg new file mode 100644 index 0000000..83db817 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-heart.svg new file mode 100644 index 0000000..be0adb1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-plus-fill.svg new file mode 100644 index 0000000..bb4502a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-plus.svg new file mode 100644 index 0000000..986a222 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-star-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-star-fill.svg new file mode 100644 index 0000000..220f16f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-star-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-star.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-star.svg new file mode 100644 index 0000000..0d2f262 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-star.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-x-fill.svg new file mode 100644 index 0000000..69fd982 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-x.svg new file mode 100644 index 0000000..6ac9e80 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark.svg new file mode 100644 index 0000000..93e1d99 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmark.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmarks-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmarks-fill.svg new file mode 100644 index 0000000..eb5a2db --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmarks-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmarks.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmarks.svg new file mode 100644 index 0000000..6efa0bc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookmarks.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bookshelf.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookshelf.svg new file mode 100644 index 0000000..6549ea1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bookshelf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/boombox-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/boombox-fill.svg new file mode 100644 index 0000000..6103ae2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/boombox-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/boombox.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/boombox.svg new file mode 100644 index 0000000..520f23e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/boombox.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-fill.svg new file mode 100644 index 0000000..9d16320 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.css b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.css new file mode 100644 index 0000000..7f0bd54 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.css @@ -0,0 +1,1876 @@ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: url("./fonts/bootstrap-icons.woff2?8d200481aa7f02a2d63a331fc782cfaf") format("woff2"), +url("./fonts/bootstrap-icons.woff?8d200481aa7f02a2d63a331fc782cfaf") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-1::before { content: "\f2a5"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-1::before { content: "\f68a"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-1::before { content: "\f68d"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-1::before { content: "\f690"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-1::before { content: "\f695"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-1::before { content: "\f698"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-mortorboard-fill::before { content: "\f6a2"; } +.bi-mortorboard::before { content: "\f6a3"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-1::before { content: "\f6b6"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash-1::before { content: "\f6c2"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport-1::before { content: "\f6e0"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-ssd-fill::before { content: "\f6ed"; } +.bi-ssd::before { content: "\f6ee"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt-1::before { content: "\f759"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls-1::before { content: "\f769"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-1::before { content: "\f794"; } +.bi-1-circle-fill-1::before { content: "\f795"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-1::before { content: "\f79a"; } +.bi-2-circle-fill-1::before { content: "\f79b"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-1::before { content: "\f7a0"; } +.bi-3-circle-fill-1::before { content: "\f7a1"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-1::before { content: "\f7a6"; } +.bi-4-circle-fill-1::before { content: "\f7a7"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-1::before { content: "\f7ac"; } +.bi-5-circle-fill-1::before { content: "\f7ad"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-1::before { content: "\f7b2"; } +.bi-6-circle-fill-1::before { content: "\f7b3"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-1::before { content: "\f7b8"; } +.bi-7-circle-fill-1::before { content: "\f7b9"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-1::before { content: "\f7be"; } +.bi-8-circle-fill-1::before { content: "\f7bf"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-1::before { content: "\f7c4"; } +.bi-9-circle-fill-1::before { content: "\f7c5"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-1::before { content: "\f7d8"; } +.bi-c-circle-fill-1::before { content: "\f7d9"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-1::before { content: "\f7e4"; } +.bi-cc-circle-fill-1::before { content: "\f7e5"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-1::before { content: "\f7f8"; } +.bi-h-circle-fill-1::before { content: "\f7f9"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-1::before { content: "\f802"; } +.bi-p-circle-fill-1::before { content: "\f803"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-1::before { content: "\f80c"; } +.bi-r-circle-fill-1::before { content: "\f80d"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.json b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.json new file mode 100644 index 0000000..faa3b2c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.json @@ -0,0 +1,1856 @@ +{ + "123": 63103, + "alarm-fill": 61697, + "alarm": 61698, + "align-bottom": 61699, + "align-center": 61700, + "align-end": 61701, + "align-middle": 61702, + "align-start": 61703, + "align-top": 61704, + "alt": 61705, + "app-indicator": 61706, + "app": 61707, + "archive-fill": 61708, + "archive": 61709, + "arrow-90deg-down": 61710, + "arrow-90deg-left": 61711, + "arrow-90deg-right": 61712, + "arrow-90deg-up": 61713, + "arrow-bar-down": 61714, + "arrow-bar-left": 61715, + "arrow-bar-right": 61716, + "arrow-bar-up": 61717, + "arrow-clockwise": 61718, + "arrow-counterclockwise": 61719, + "arrow-down-circle-fill": 61720, + "arrow-down-circle": 61721, + "arrow-down-left-circle-fill": 61722, + "arrow-down-left-circle": 61723, + "arrow-down-left-square-fill": 61724, + "arrow-down-left-square": 61725, + "arrow-down-left": 61726, + "arrow-down-right-circle-fill": 61727, + "arrow-down-right-circle": 61728, + "arrow-down-right-square-fill": 61729, + "arrow-down-right-square": 61730, + "arrow-down-right": 61731, + "arrow-down-short": 61732, + "arrow-down-square-fill": 61733, + "arrow-down-square": 61734, + "arrow-down-up": 61735, + "arrow-down": 61736, + "arrow-left-circle-fill": 61737, + "arrow-left-circle": 61738, + "arrow-left-right": 61739, + "arrow-left-short": 61740, + "arrow-left-square-fill": 61741, + "arrow-left-square": 61742, + "arrow-left": 61743, + "arrow-repeat": 61744, + "arrow-return-left": 61745, + "arrow-return-right": 61746, + "arrow-right-circle-fill": 61747, + "arrow-right-circle": 61748, + "arrow-right-short": 61749, + "arrow-right-square-fill": 61750, + "arrow-right-square": 61751, + "arrow-right": 61752, + "arrow-up-circle-fill": 61753, + "arrow-up-circle": 61754, + "arrow-up-left-circle-fill": 61755, + "arrow-up-left-circle": 61756, + "arrow-up-left-square-fill": 61757, + "arrow-up-left-square": 61758, + "arrow-up-left": 61759, + "arrow-up-right-circle-fill": 61760, + "arrow-up-right-circle": 61761, + "arrow-up-right-square-fill": 61762, + "arrow-up-right-square": 61763, + "arrow-up-right": 61764, + "arrow-up-short": 61765, + "arrow-up-square-fill": 61766, + "arrow-up-square": 61767, + "arrow-up": 61768, + "arrows-angle-contract": 61769, + "arrows-angle-expand": 61770, + "arrows-collapse": 61771, + "arrows-expand": 61772, + "arrows-fullscreen": 61773, + "arrows-move": 61774, + "aspect-ratio-fill": 61775, + "aspect-ratio": 61776, + "asterisk": 61777, + "at": 61778, + "award-fill": 61779, + "award": 61780, + "back": 61781, + "backspace-fill": 61782, + "backspace-reverse-fill": 61783, + "backspace-reverse": 61784, + "backspace": 61785, + "badge-3d-fill": 61786, + "badge-3d": 61787, + "badge-4k-fill": 61788, + "badge-4k": 61789, + "badge-8k-fill": 61790, + "badge-8k": 61791, + "badge-ad-fill": 61792, + "badge-ad": 61793, + "badge-ar-fill": 61794, + "badge-ar": 61795, + "badge-cc-fill": 61796, + "badge-cc": 61797, + "badge-hd-fill": 61798, + "badge-hd": 61799, + "badge-tm-fill": 61800, + "badge-tm": 61801, + "badge-vo-fill": 61802, + "badge-vo": 61803, + "badge-vr-fill": 61804, + "badge-vr": 61805, + "badge-wc-fill": 61806, + "badge-wc": 61807, + "bag-check-fill": 61808, + "bag-check": 61809, + "bag-dash-fill": 61810, + "bag-dash": 61811, + "bag-fill": 61812, + "bag-plus-fill": 61813, + "bag-plus": 61814, + "bag-x-fill": 61815, + "bag-x": 61816, + "bag": 61817, + "bar-chart-fill": 61818, + "bar-chart-line-fill": 61819, + "bar-chart-line": 61820, + "bar-chart-steps": 61821, + "bar-chart": 61822, + "basket-fill": 61823, + "basket": 61824, + "basket2-fill": 61825, + "basket2": 61826, + "basket3-fill": 61827, + "basket3": 61828, + "battery-charging": 61829, + "battery-full": 61830, + "battery-half": 61831, + "battery": 61832, + "bell-fill": 61833, + "bell": 61834, + "bezier": 61835, + "bezier2": 61836, + "bicycle": 61837, + "binoculars-fill": 61838, + "binoculars": 61839, + "blockquote-left": 61840, + "blockquote-right": 61841, + "book-fill": 61842, + "book-half": 61843, + "book": 61844, + "bookmark-check-fill": 61845, + "bookmark-check": 61846, + "bookmark-dash-fill": 61847, + "bookmark-dash": 61848, + "bookmark-fill": 61849, + "bookmark-heart-fill": 61850, + "bookmark-heart": 61851, + "bookmark-plus-fill": 61852, + "bookmark-plus": 61853, + "bookmark-star-fill": 61854, + "bookmark-star": 61855, + "bookmark-x-fill": 61856, + "bookmark-x": 61857, + "bookmark": 61858, + "bookmarks-fill": 61859, + "bookmarks": 61860, + "bookshelf": 61861, + "bootstrap-fill": 61862, + "bootstrap-reboot": 61863, + "bootstrap": 61864, + "border-all": 61865, + "border-bottom": 61866, + "border-center": 61867, + "border-inner": 61868, + "border-left": 61869, + "border-middle": 61870, + "border-outer": 61871, + "border-right": 61872, + "border-style": 61873, + "border-top": 61874, + "border-width": 61875, + "border": 61876, + "bounding-box-circles": 61877, + "bounding-box": 61878, + "box-arrow-down-left": 61879, + "box-arrow-down-right": 61880, + "box-arrow-down": 61881, + "box-arrow-in-down-left": 61882, + "box-arrow-in-down-right": 61883, + "box-arrow-in-down": 61884, + "box-arrow-in-left": 61885, + "box-arrow-in-right": 61886, + "box-arrow-in-up-left": 61887, + "box-arrow-in-up-right": 61888, + "box-arrow-in-up": 61889, + "box-arrow-left": 61890, + "box-arrow-right": 61891, + "box-arrow-up-left": 61892, + "box-arrow-up-right": 61893, + "box-arrow-up": 61894, + "box-seam": 61895, + "box": 61896, + "braces": 61897, + "bricks": 61898, + "briefcase-fill": 61899, + "briefcase": 61900, + "brightness-alt-high-fill": 61901, + "brightness-alt-high": 61902, + "brightness-alt-low-fill": 61903, + "brightness-alt-low": 61904, + "brightness-high-fill": 61905, + "brightness-high": 61906, + "brightness-low-fill": 61907, + "brightness-low": 61908, + "broadcast-pin": 61909, + "broadcast": 61910, + "brush-fill": 61911, + "brush": 61912, + "bucket-fill": 61913, + "bucket": 61914, + "bug-fill": 61915, + "bug": 61916, + "building": 61917, + "bullseye": 61918, + "calculator-fill": 61919, + "calculator": 61920, + "calendar-check-fill": 61921, + "calendar-check": 61922, + "calendar-date-fill": 61923, + "calendar-date": 61924, + "calendar-day-fill": 61925, + "calendar-day": 61926, + "calendar-event-fill": 61927, + "calendar-event": 61928, + "calendar-fill": 61929, + "calendar-minus-fill": 61930, + "calendar-minus": 61931, + "calendar-month-fill": 61932, + "calendar-month": 61933, + "calendar-plus-fill": 61934, + "calendar-plus": 61935, + "calendar-range-fill": 61936, + "calendar-range": 61937, + "calendar-week-fill": 61938, + "calendar-week": 61939, + "calendar-x-fill": 61940, + "calendar-x": 61941, + "calendar": 61942, + "calendar2-check-fill": 61943, + "calendar2-check": 61944, + "calendar2-date-fill": 61945, + "calendar2-date": 61946, + "calendar2-day-fill": 61947, + "calendar2-day": 61948, + "calendar2-event-fill": 61949, + "calendar2-event": 61950, + "calendar2-fill": 61951, + "calendar2-minus-fill": 61952, + "calendar2-minus": 61953, + "calendar2-month-fill": 61954, + "calendar2-month": 61955, + "calendar2-plus-fill": 61956, + "calendar2-plus": 61957, + "calendar2-range-fill": 61958, + "calendar2-range": 61959, + "calendar2-week-fill": 61960, + "calendar2-week": 61961, + "calendar2-x-fill": 61962, + "calendar2-x": 61963, + "calendar2": 61964, + "calendar3-event-fill": 61965, + "calendar3-event": 61966, + "calendar3-fill": 61967, + "calendar3-range-fill": 61968, + "calendar3-range": 61969, + "calendar3-week-fill": 61970, + "calendar3-week": 61971, + "calendar3": 61972, + "calendar4-event": 61973, + "calendar4-range": 61974, + "calendar4-week": 61975, + "calendar4": 61976, + "camera-fill": 61977, + "camera-reels-fill": 61978, + "camera-reels": 61979, + "camera-video-fill": 61980, + "camera-video-off-fill": 61981, + "camera-video-off": 61982, + "camera-video": 61983, + "camera": 61984, + "camera2": 61985, + "capslock-fill": 61986, + "capslock": 61987, + "card-checklist": 61988, + "card-heading": 61989, + "card-image": 61990, + "card-list": 61991, + "card-text": 61992, + "caret-down-fill": 61993, + "caret-down-square-fill": 61994, + "caret-down-square": 61995, + "caret-down": 61996, + "caret-left-fill": 61997, + "caret-left-square-fill": 61998, + "caret-left-square": 61999, + "caret-left": 62000, + "caret-right-fill": 62001, + "caret-right-square-fill": 62002, + "caret-right-square": 62003, + "caret-right": 62004, + "caret-up-fill": 62005, + "caret-up-square-fill": 62006, + "caret-up-square": 62007, + "caret-up": 62008, + "cart-check-fill": 62009, + "cart-check": 62010, + "cart-dash-fill": 62011, + "cart-dash": 62012, + "cart-fill": 62013, + "cart-plus-fill": 62014, + "cart-plus": 62015, + "cart-x-fill": 62016, + "cart-x": 62017, + "cart": 62018, + "cart2": 62019, + "cart3": 62020, + "cart4": 62021, + "cash-stack": 62022, + "cash": 62023, + "cast": 62024, + "chat-dots-fill": 62025, + "chat-dots": 62026, + "chat-fill": 62027, + "chat-left-dots-fill": 62028, + "chat-left-dots": 62029, + "chat-left-fill": 62030, + "chat-left-quote-fill": 62031, + "chat-left-quote": 62032, + "chat-left-text-fill": 62033, + "chat-left-text": 62034, + "chat-left": 62035, + "chat-quote-fill": 62036, + "chat-quote": 62037, + "chat-right-dots-fill": 62038, + "chat-right-dots": 62039, + "chat-right-fill": 62040, + "chat-right-quote-fill": 62041, + "chat-right-quote": 62042, + "chat-right-text-fill": 62043, + "chat-right-text": 62044, + "chat-right": 62045, + "chat-square-dots-fill": 62046, + "chat-square-dots": 62047, + "chat-square-fill": 62048, + "chat-square-quote-fill": 62049, + "chat-square-quote": 62050, + "chat-square-text-fill": 62051, + "chat-square-text": 62052, + "chat-square": 62053, + "chat-text-fill": 62054, + "chat-text": 62055, + "chat": 62056, + "check-all": 62057, + "check-circle-fill": 62058, + "check-circle": 62059, + "check-square-fill": 62060, + "check-square": 62061, + "check": 62062, + "check2-all": 62063, + "check2-circle": 62064, + "check2-square": 62065, + "check2": 62066, + "chevron-bar-contract": 62067, + "chevron-bar-down": 62068, + "chevron-bar-expand": 62069, + "chevron-bar-left": 62070, + "chevron-bar-right": 62071, + "chevron-bar-up": 62072, + "chevron-compact-down": 62073, + "chevron-compact-left": 62074, + "chevron-compact-right": 62075, + "chevron-compact-up": 62076, + "chevron-contract": 62077, + "chevron-double-down": 62078, + "chevron-double-left": 62079, + "chevron-double-right": 62080, + "chevron-double-up": 62081, + "chevron-down": 62082, + "chevron-expand": 62083, + "chevron-left": 62084, + "chevron-right": 62085, + "chevron-up": 62086, + "circle-fill": 62087, + "circle-half": 62088, + "circle-square": 62089, + "circle": 62090, + "clipboard-check": 62091, + "clipboard-data": 62092, + "clipboard-minus": 62093, + "clipboard-plus": 62094, + "clipboard-x": 62095, + "clipboard": 62096, + "clock-fill": 62097, + "clock-history": 62098, + "clock": 62099, + "cloud-arrow-down-fill": 62100, + "cloud-arrow-down": 62101, + "cloud-arrow-up-fill": 62102, + "cloud-arrow-up": 62103, + "cloud-check-fill": 62104, + "cloud-check": 62105, + "cloud-download-fill": 62106, + "cloud-download": 62107, + "cloud-drizzle-fill": 62108, + "cloud-drizzle": 62109, + "cloud-fill": 62110, + "cloud-fog-fill": 62111, + "cloud-fog": 62112, + "cloud-fog2-fill": 62113, + "cloud-fog2": 62114, + "cloud-hail-fill": 62115, + "cloud-hail": 62116, + "cloud-haze-1": 62117, + "cloud-haze-fill": 62118, + "cloud-haze": 62119, + "cloud-haze2-fill": 62120, + "cloud-lightning-fill": 62121, + "cloud-lightning-rain-fill": 62122, + "cloud-lightning-rain": 62123, + "cloud-lightning": 62124, + "cloud-minus-fill": 62125, + "cloud-minus": 62126, + "cloud-moon-fill": 62127, + "cloud-moon": 62128, + "cloud-plus-fill": 62129, + "cloud-plus": 62130, + "cloud-rain-fill": 62131, + "cloud-rain-heavy-fill": 62132, + "cloud-rain-heavy": 62133, + "cloud-rain": 62134, + "cloud-slash-fill": 62135, + "cloud-slash": 62136, + "cloud-sleet-fill": 62137, + "cloud-sleet": 62138, + "cloud-snow-fill": 62139, + "cloud-snow": 62140, + "cloud-sun-fill": 62141, + "cloud-sun": 62142, + "cloud-upload-fill": 62143, + "cloud-upload": 62144, + "cloud": 62145, + "clouds-fill": 62146, + "clouds": 62147, + "cloudy-fill": 62148, + "cloudy": 62149, + "code-slash": 62150, + "code-square": 62151, + "code": 62152, + "collection-fill": 62153, + "collection-play-fill": 62154, + "collection-play": 62155, + "collection": 62156, + "columns-gap": 62157, + "columns": 62158, + "command": 62159, + "compass-fill": 62160, + "compass": 62161, + "cone-striped": 62162, + "cone": 62163, + "controller": 62164, + "cpu-fill": 62165, + "cpu": 62166, + "credit-card-2-back-fill": 62167, + "credit-card-2-back": 62168, + "credit-card-2-front-fill": 62169, + "credit-card-2-front": 62170, + "credit-card-fill": 62171, + "credit-card": 62172, + "crop": 62173, + "cup-fill": 62174, + "cup-straw": 62175, + "cup": 62176, + "cursor-fill": 62177, + "cursor-text": 62178, + "cursor": 62179, + "dash-circle-dotted": 62180, + "dash-circle-fill": 62181, + "dash-circle": 62182, + "dash-square-dotted": 62183, + "dash-square-fill": 62184, + "dash-square": 62185, + "dash": 62186, + "diagram-2-fill": 62187, + "diagram-2": 62188, + "diagram-3-fill": 62189, + "diagram-3": 62190, + "diamond-fill": 62191, + "diamond-half": 62192, + "diamond": 62193, + "dice-1-fill": 62194, + "dice-1": 62195, + "dice-2-fill": 62196, + "dice-2": 62197, + "dice-3-fill": 62198, + "dice-3": 62199, + "dice-4-fill": 62200, + "dice-4": 62201, + "dice-5-fill": 62202, + "dice-5": 62203, + "dice-6-fill": 62204, + "dice-6": 62205, + "disc-fill": 62206, + "disc": 62207, + "discord": 62208, + "display-fill": 62209, + "display": 62210, + "distribute-horizontal": 62211, + "distribute-vertical": 62212, + "door-closed-fill": 62213, + "door-closed": 62214, + "door-open-fill": 62215, + "door-open": 62216, + "dot": 62217, + "download": 62218, + "droplet-fill": 62219, + "droplet-half": 62220, + "droplet": 62221, + "earbuds": 62222, + "easel-fill": 62223, + "easel": 62224, + "egg-fill": 62225, + "egg-fried": 62226, + "egg": 62227, + "eject-fill": 62228, + "eject": 62229, + "emoji-angry-fill": 62230, + "emoji-angry": 62231, + "emoji-dizzy-fill": 62232, + "emoji-dizzy": 62233, + "emoji-expressionless-fill": 62234, + "emoji-expressionless": 62235, + "emoji-frown-fill": 62236, + "emoji-frown": 62237, + "emoji-heart-eyes-fill": 62238, + "emoji-heart-eyes": 62239, + "emoji-laughing-fill": 62240, + "emoji-laughing": 62241, + "emoji-neutral-fill": 62242, + "emoji-neutral": 62243, + "emoji-smile-fill": 62244, + "emoji-smile-upside-down-fill": 62245, + "emoji-smile-upside-down": 62246, + "emoji-smile": 62247, + "emoji-sunglasses-fill": 62248, + "emoji-sunglasses": 62249, + "emoji-wink-fill": 62250, + "emoji-wink": 62251, + "envelope-fill": 62252, + "envelope-open-fill": 62253, + "envelope-open": 62254, + "envelope": 62255, + "eraser-fill": 62256, + "eraser": 62257, + "exclamation-circle-fill": 62258, + "exclamation-circle": 62259, + "exclamation-diamond-fill": 62260, + "exclamation-diamond": 62261, + "exclamation-octagon-fill": 62262, + "exclamation-octagon": 62263, + "exclamation-square-fill": 62264, + "exclamation-square": 62265, + "exclamation-triangle-fill": 62266, + "exclamation-triangle": 62267, + "exclamation": 62268, + "exclude": 62269, + "eye-fill": 62270, + "eye-slash-fill": 62271, + "eye-slash": 62272, + "eye": 62273, + "eyedropper": 62274, + "eyeglasses": 62275, + "facebook": 62276, + "file-arrow-down-fill": 62277, + "file-arrow-down": 62278, + "file-arrow-up-fill": 62279, + "file-arrow-up": 62280, + "file-bar-graph-fill": 62281, + "file-bar-graph": 62282, + "file-binary-fill": 62283, + "file-binary": 62284, + "file-break-fill": 62285, + "file-break": 62286, + "file-check-fill": 62287, + "file-check": 62288, + "file-code-fill": 62289, + "file-code": 62290, + "file-diff-fill": 62291, + "file-diff": 62292, + "file-earmark-arrow-down-fill": 62293, + "file-earmark-arrow-down": 62294, + "file-earmark-arrow-up-fill": 62295, + "file-earmark-arrow-up": 62296, + "file-earmark-bar-graph-fill": 62297, + "file-earmark-bar-graph": 62298, + "file-earmark-binary-fill": 62299, + "file-earmark-binary": 62300, + "file-earmark-break-fill": 62301, + "file-earmark-break": 62302, + "file-earmark-check-fill": 62303, + "file-earmark-check": 62304, + "file-earmark-code-fill": 62305, + "file-earmark-code": 62306, + "file-earmark-diff-fill": 62307, + "file-earmark-diff": 62308, + "file-earmark-easel-fill": 62309, + "file-earmark-easel": 62310, + "file-earmark-excel-fill": 62311, + "file-earmark-excel": 62312, + "file-earmark-fill": 62313, + "file-earmark-font-fill": 62314, + "file-earmark-font": 62315, + "file-earmark-image-fill": 62316, + "file-earmark-image": 62317, + "file-earmark-lock-fill": 62318, + "file-earmark-lock": 62319, + "file-earmark-lock2-fill": 62320, + "file-earmark-lock2": 62321, + "file-earmark-medical-fill": 62322, + "file-earmark-medical": 62323, + "file-earmark-minus-fill": 62324, + "file-earmark-minus": 62325, + "file-earmark-music-fill": 62326, + "file-earmark-music": 62327, + "file-earmark-person-fill": 62328, + "file-earmark-person": 62329, + "file-earmark-play-fill": 62330, + "file-earmark-play": 62331, + "file-earmark-plus-fill": 62332, + "file-earmark-plus": 62333, + "file-earmark-post-fill": 62334, + "file-earmark-post": 62335, + "file-earmark-ppt-fill": 62336, + "file-earmark-ppt": 62337, + "file-earmark-richtext-fill": 62338, + "file-earmark-richtext": 62339, + "file-earmark-ruled-fill": 62340, + "file-earmark-ruled": 62341, + "file-earmark-slides-fill": 62342, + "file-earmark-slides": 62343, + "file-earmark-spreadsheet-fill": 62344, + "file-earmark-spreadsheet": 62345, + "file-earmark-text-fill": 62346, + "file-earmark-text": 62347, + "file-earmark-word-fill": 62348, + "file-earmark-word": 62349, + "file-earmark-x-fill": 62350, + "file-earmark-x": 62351, + "file-earmark-zip-fill": 62352, + "file-earmark-zip": 62353, + "file-earmark": 62354, + "file-easel-fill": 62355, + "file-easel": 62356, + "file-excel-fill": 62357, + "file-excel": 62358, + "file-fill": 62359, + "file-font-fill": 62360, + "file-font": 62361, + "file-image-fill": 62362, + "file-image": 62363, + "file-lock-fill": 62364, + "file-lock": 62365, + "file-lock2-fill": 62366, + "file-lock2": 62367, + "file-medical-fill": 62368, + "file-medical": 62369, + "file-minus-fill": 62370, + "file-minus": 62371, + "file-music-fill": 62372, + "file-music": 62373, + "file-person-fill": 62374, + "file-person": 62375, + "file-play-fill": 62376, + "file-play": 62377, + "file-plus-fill": 62378, + "file-plus": 62379, + "file-post-fill": 62380, + "file-post": 62381, + "file-ppt-fill": 62382, + "file-ppt": 62383, + "file-richtext-fill": 62384, + "file-richtext": 62385, + "file-ruled-fill": 62386, + "file-ruled": 62387, + "file-slides-fill": 62388, + "file-slides": 62389, + "file-spreadsheet-fill": 62390, + "file-spreadsheet": 62391, + "file-text-fill": 62392, + "file-text": 62393, + "file-word-fill": 62394, + "file-word": 62395, + "file-x-fill": 62396, + "file-x": 62397, + "file-zip-fill": 62398, + "file-zip": 62399, + "file": 62400, + "files-alt": 62401, + "files": 62402, + "film": 62403, + "filter-circle-fill": 62404, + "filter-circle": 62405, + "filter-left": 62406, + "filter-right": 62407, + "filter-square-fill": 62408, + "filter-square": 62409, + "filter": 62410, + "flag-fill": 62411, + "flag": 62412, + "flower1": 62413, + "flower2": 62414, + "flower3": 62415, + "folder-check": 62416, + "folder-fill": 62417, + "folder-minus": 62418, + "folder-plus": 62419, + "folder-symlink-fill": 62420, + "folder-symlink": 62421, + "folder-x": 62422, + "folder": 62423, + "folder2-open": 62424, + "folder2": 62425, + "fonts": 62426, + "forward-fill": 62427, + "forward": 62428, + "front": 62429, + "fullscreen-exit": 62430, + "fullscreen": 62431, + "funnel-fill": 62432, + "funnel": 62433, + "gear-fill": 62434, + "gear-wide-connected": 62435, + "gear-wide": 62436, + "gear": 62437, + "gem": 62438, + "geo-alt-fill": 62439, + "geo-alt": 62440, + "geo-fill": 62441, + "geo": 62442, + "gift-fill": 62443, + "gift": 62444, + "github": 62445, + "globe": 62446, + "globe2": 62447, + "google": 62448, + "graph-down": 62449, + "graph-up": 62450, + "grid-1x2-fill": 62451, + "grid-1x2": 62452, + "grid-3x2-gap-fill": 62453, + "grid-3x2-gap": 62454, + "grid-3x2": 62455, + "grid-3x3-gap-fill": 62456, + "grid-3x3-gap": 62457, + "grid-3x3": 62458, + "grid-fill": 62459, + "grid": 62460, + "grip-horizontal": 62461, + "grip-vertical": 62462, + "hammer": 62463, + "hand-index-fill": 62464, + "hand-index-thumb-fill": 62465, + "hand-index-thumb": 62466, + "hand-index": 62467, + "hand-thumbs-down-fill": 62468, + "hand-thumbs-down": 62469, + "hand-thumbs-up-fill": 62470, + "hand-thumbs-up": 62471, + "handbag-fill": 62472, + "handbag": 62473, + "hash": 62474, + "hdd-fill": 62475, + "hdd-network-fill": 62476, + "hdd-network": 62477, + "hdd-rack-fill": 62478, + "hdd-rack": 62479, + "hdd-stack-fill": 62480, + "hdd-stack": 62481, + "hdd": 62482, + "headphones": 62483, + "headset": 62484, + "heart-fill": 62485, + "heart-half": 62486, + "heart": 62487, + "heptagon-fill": 62488, + "heptagon-half": 62489, + "heptagon": 62490, + "hexagon-fill": 62491, + "hexagon-half": 62492, + "hexagon": 62493, + "hourglass-bottom": 62494, + "hourglass-split": 62495, + "hourglass-top": 62496, + "hourglass": 62497, + "house-door-fill": 62498, + "house-door": 62499, + "house-fill": 62500, + "house": 62501, + "hr": 62502, + "hurricane": 62503, + "image-alt": 62504, + "image-fill": 62505, + "image": 62506, + "images": 62507, + "inbox-fill": 62508, + "inbox": 62509, + "inboxes-fill": 62510, + "inboxes": 62511, + "info-circle-fill": 62512, + "info-circle": 62513, + "info-square-fill": 62514, + "info-square": 62515, + "info": 62516, + "input-cursor-text": 62517, + "input-cursor": 62518, + "instagram": 62519, + "intersect": 62520, + "journal-album": 62521, + "journal-arrow-down": 62522, + "journal-arrow-up": 62523, + "journal-bookmark-fill": 62524, + "journal-bookmark": 62525, + "journal-check": 62526, + "journal-code": 62527, + "journal-medical": 62528, + "journal-minus": 62529, + "journal-plus": 62530, + "journal-richtext": 62531, + "journal-text": 62532, + "journal-x": 62533, + "journal": 62534, + "journals": 62535, + "joystick": 62536, + "justify-left": 62537, + "justify-right": 62538, + "justify": 62539, + "kanban-fill": 62540, + "kanban": 62541, + "key-fill": 62542, + "key": 62543, + "keyboard-fill": 62544, + "keyboard": 62545, + "ladder": 62546, + "lamp-fill": 62547, + "lamp": 62548, + "laptop-fill": 62549, + "laptop": 62550, + "layer-backward": 62551, + "layer-forward": 62552, + "layers-fill": 62553, + "layers-half": 62554, + "layers": 62555, + "layout-sidebar-inset-reverse": 62556, + "layout-sidebar-inset": 62557, + "layout-sidebar-reverse": 62558, + "layout-sidebar": 62559, + "layout-split": 62560, + "layout-text-sidebar-reverse": 62561, + "layout-text-sidebar": 62562, + "layout-text-window-reverse": 62563, + "layout-text-window": 62564, + "layout-three-columns": 62565, + "layout-wtf": 62566, + "life-preserver": 62567, + "lightbulb-fill": 62568, + "lightbulb-off-fill": 62569, + "lightbulb-off": 62570, + "lightbulb": 62571, + "lightning-charge-fill": 62572, + "lightning-charge": 62573, + "lightning-fill": 62574, + "lightning": 62575, + "link-45deg": 62576, + "link": 62577, + "linkedin": 62578, + "list-check": 62579, + "list-nested": 62580, + "list-ol": 62581, + "list-stars": 62582, + "list-task": 62583, + "list-ul": 62584, + "list": 62585, + "lock-fill": 62586, + "lock": 62587, + "mailbox": 62588, + "mailbox2": 62589, + "map-fill": 62590, + "map": 62591, + "markdown-fill": 62592, + "markdown": 62593, + "mask": 62594, + "megaphone-fill": 62595, + "megaphone": 62596, + "menu-app-fill": 62597, + "menu-app": 62598, + "menu-button-fill": 62599, + "menu-button-wide-fill": 62600, + "menu-button-wide": 62601, + "menu-button": 62602, + "menu-down": 62603, + "menu-up": 62604, + "mic-fill": 62605, + "mic-mute-fill": 62606, + "mic-mute": 62607, + "mic": 62608, + "minecart-loaded": 62609, + "minecart": 62610, + "moisture": 62611, + "moon-fill": 62612, + "moon-stars-fill": 62613, + "moon-stars": 62614, + "moon": 62615, + "mouse-fill": 62616, + "mouse": 62617, + "mouse2-fill": 62618, + "mouse2": 62619, + "mouse3-fill": 62620, + "mouse3": 62621, + "music-note-beamed": 62622, + "music-note-list": 62623, + "music-note": 62624, + "music-player-fill": 62625, + "music-player": 62626, + "newspaper": 62627, + "node-minus-fill": 62628, + "node-minus": 62629, + "node-plus-fill": 62630, + "node-plus": 62631, + "nut-fill": 62632, + "nut": 62633, + "octagon-fill": 62634, + "octagon-half": 62635, + "octagon": 62636, + "option": 62637, + "outlet": 62638, + "paint-bucket": 62639, + "palette-fill": 62640, + "palette": 62641, + "palette2": 62642, + "paperclip": 62643, + "paragraph": 62644, + "patch-check-fill": 62645, + "patch-check": 62646, + "patch-exclamation-fill": 62647, + "patch-exclamation": 62648, + "patch-minus-fill": 62649, + "patch-minus": 62650, + "patch-plus-fill": 62651, + "patch-plus": 62652, + "patch-question-fill": 62653, + "patch-question": 62654, + "pause-btn-fill": 62655, + "pause-btn": 62656, + "pause-circle-fill": 62657, + "pause-circle": 62658, + "pause-fill": 62659, + "pause": 62660, + "peace-fill": 62661, + "peace": 62662, + "pen-fill": 62663, + "pen": 62664, + "pencil-fill": 62665, + "pencil-square": 62666, + "pencil": 62667, + "pentagon-fill": 62668, + "pentagon-half": 62669, + "pentagon": 62670, + "people-fill": 62671, + "people": 62672, + "percent": 62673, + "person-badge-fill": 62674, + "person-badge": 62675, + "person-bounding-box": 62676, + "person-check-fill": 62677, + "person-check": 62678, + "person-circle": 62679, + "person-dash-fill": 62680, + "person-dash": 62681, + "person-fill": 62682, + "person-lines-fill": 62683, + "person-plus-fill": 62684, + "person-plus": 62685, + "person-square": 62686, + "person-x-fill": 62687, + "person-x": 62688, + "person": 62689, + "phone-fill": 62690, + "phone-landscape-fill": 62691, + "phone-landscape": 62692, + "phone-vibrate-fill": 62693, + "phone-vibrate": 62694, + "phone": 62695, + "pie-chart-fill": 62696, + "pie-chart": 62697, + "pin-angle-fill": 62698, + "pin-angle": 62699, + "pin-fill": 62700, + "pin": 62701, + "pip-fill": 62702, + "pip": 62703, + "play-btn-fill": 62704, + "play-btn": 62705, + "play-circle-fill": 62706, + "play-circle": 62707, + "play-fill": 62708, + "play": 62709, + "plug-fill": 62710, + "plug": 62711, + "plus-circle-dotted": 62712, + "plus-circle-fill": 62713, + "plus-circle": 62714, + "plus-square-dotted": 62715, + "plus-square-fill": 62716, + "plus-square": 62717, + "plus": 62718, + "power": 62719, + "printer-fill": 62720, + "printer": 62721, + "puzzle-fill": 62722, + "puzzle": 62723, + "question-circle-fill": 62724, + "question-circle": 62725, + "question-diamond-fill": 62726, + "question-diamond": 62727, + "question-octagon-fill": 62728, + "question-octagon": 62729, + "question-square-fill": 62730, + "question-square": 62731, + "question": 62732, + "rainbow": 62733, + "receipt-cutoff": 62734, + "receipt": 62735, + "reception-0": 62736, + "reception-1": 62737, + "reception-2": 62738, + "reception-3": 62739, + "reception-4": 62740, + "record-btn-fill": 62741, + "record-btn": 62742, + "record-circle-fill": 62743, + "record-circle": 62744, + "record-fill": 62745, + "record": 62746, + "record2-fill": 62747, + "record2": 62748, + "reply-all-fill": 62749, + "reply-all": 62750, + "reply-fill": 62751, + "reply": 62752, + "rss-fill": 62753, + "rss": 62754, + "rulers": 62755, + "save-fill": 62756, + "save": 62757, + "save2-fill": 62758, + "save2": 62759, + "scissors": 62760, + "screwdriver": 62761, + "search": 62762, + "segmented-nav": 62763, + "server": 62764, + "share-fill": 62765, + "share": 62766, + "shield-check": 62767, + "shield-exclamation": 62768, + "shield-fill-check": 62769, + "shield-fill-exclamation": 62770, + "shield-fill-minus": 62771, + "shield-fill-plus": 62772, + "shield-fill-x": 62773, + "shield-fill": 62774, + "shield-lock-fill": 62775, + "shield-lock": 62776, + "shield-minus": 62777, + "shield-plus": 62778, + "shield-shaded": 62779, + "shield-slash-fill": 62780, + "shield-slash": 62781, + "shield-x": 62782, + "shield": 62783, + "shift-fill": 62784, + "shift": 62785, + "shop-window": 62786, + "shop": 62787, + "shuffle": 62788, + "signpost-2-fill": 62789, + "signpost-2": 62790, + "signpost-fill": 62791, + "signpost-split-fill": 62792, + "signpost-split": 62793, + "signpost": 62794, + "sim-fill": 62795, + "sim": 62796, + "skip-backward-btn-fill": 62797, + "skip-backward-btn": 62798, + "skip-backward-circle-fill": 62799, + "skip-backward-circle": 62800, + "skip-backward-fill": 62801, + "skip-backward": 62802, + "skip-end-btn-fill": 62803, + "skip-end-btn": 62804, + "skip-end-circle-fill": 62805, + "skip-end-circle": 62806, + "skip-end-fill": 62807, + "skip-end": 62808, + "skip-forward-btn-fill": 62809, + "skip-forward-btn": 62810, + "skip-forward-circle-fill": 62811, + "skip-forward-circle": 62812, + "skip-forward-fill": 62813, + "skip-forward": 62814, + "skip-start-btn-fill": 62815, + "skip-start-btn": 62816, + "skip-start-circle-fill": 62817, + "skip-start-circle": 62818, + "skip-start-fill": 62819, + "skip-start": 62820, + "slack": 62821, + "slash-circle-fill": 62822, + "slash-circle": 62823, + "slash-square-fill": 62824, + "slash-square": 62825, + "slash": 62826, + "sliders": 62827, + "smartwatch": 62828, + "snow": 62829, + "snow2": 62830, + "snow3": 62831, + "sort-alpha-down-alt": 62832, + "sort-alpha-down": 62833, + "sort-alpha-up-alt": 62834, + "sort-alpha-up": 62835, + "sort-down-alt": 62836, + "sort-down": 62837, + "sort-numeric-down-alt": 62838, + "sort-numeric-down": 62839, + "sort-numeric-up-alt": 62840, + "sort-numeric-up": 62841, + "sort-up-alt": 62842, + "sort-up": 62843, + "soundwave": 62844, + "speaker-fill": 62845, + "speaker": 62846, + "speedometer": 62847, + "speedometer2": 62848, + "spellcheck": 62849, + "square-fill": 62850, + "square-half": 62851, + "square": 62852, + "stack": 62853, + "star-fill": 62854, + "star-half": 62855, + "star": 62856, + "stars": 62857, + "stickies-fill": 62858, + "stickies": 62859, + "sticky-fill": 62860, + "sticky": 62861, + "stop-btn-fill": 62862, + "stop-btn": 62863, + "stop-circle-fill": 62864, + "stop-circle": 62865, + "stop-fill": 62866, + "stop": 62867, + "stoplights-fill": 62868, + "stoplights": 62869, + "stopwatch-fill": 62870, + "stopwatch": 62871, + "subtract": 62872, + "suit-club-fill": 62873, + "suit-club": 62874, + "suit-diamond-fill": 62875, + "suit-diamond": 62876, + "suit-heart-fill": 62877, + "suit-heart": 62878, + "suit-spade-fill": 62879, + "suit-spade": 62880, + "sun-fill": 62881, + "sun": 62882, + "sunglasses": 62883, + "sunrise-fill": 62884, + "sunrise": 62885, + "sunset-fill": 62886, + "sunset": 62887, + "symmetry-horizontal": 62888, + "symmetry-vertical": 62889, + "table": 62890, + "tablet-fill": 62891, + "tablet-landscape-fill": 62892, + "tablet-landscape": 62893, + "tablet": 62894, + "tag-fill": 62895, + "tag": 62896, + "tags-fill": 62897, + "tags": 62898, + "telegram": 62899, + "telephone-fill": 62900, + "telephone-forward-fill": 62901, + "telephone-forward": 62902, + "telephone-inbound-fill": 62903, + "telephone-inbound": 62904, + "telephone-minus-fill": 62905, + "telephone-minus": 62906, + "telephone-outbound-fill": 62907, + "telephone-outbound": 62908, + "telephone-plus-fill": 62909, + "telephone-plus": 62910, + "telephone-x-fill": 62911, + "telephone-x": 62912, + "telephone": 62913, + "terminal-fill": 62914, + "terminal": 62915, + "text-center": 62916, + "text-indent-left": 62917, + "text-indent-right": 62918, + "text-left": 62919, + "text-paragraph": 62920, + "text-right": 62921, + "textarea-resize": 62922, + "textarea-t": 62923, + "textarea": 62924, + "thermometer-half": 62925, + "thermometer-high": 62926, + "thermometer-low": 62927, + "thermometer-snow": 62928, + "thermometer-sun": 62929, + "thermometer": 62930, + "three-dots-vertical": 62931, + "three-dots": 62932, + "toggle-off": 62933, + "toggle-on": 62934, + "toggle2-off": 62935, + "toggle2-on": 62936, + "toggles": 62937, + "toggles2": 62938, + "tools": 62939, + "tornado": 62940, + "trash-fill": 62941, + "trash": 62942, + "trash2-fill": 62943, + "trash2": 62944, + "tree-fill": 62945, + "tree": 62946, + "triangle-fill": 62947, + "triangle-half": 62948, + "triangle": 62949, + "trophy-fill": 62950, + "trophy": 62951, + "tropical-storm": 62952, + "truck-flatbed": 62953, + "truck": 62954, + "tsunami": 62955, + "tv-fill": 62956, + "tv": 62957, + "twitch": 62958, + "twitter": 62959, + "type-bold": 62960, + "type-h1": 62961, + "type-h2": 62962, + "type-h3": 62963, + "type-italic": 62964, + "type-strikethrough": 62965, + "type-underline": 62966, + "type": 62967, + "ui-checks-grid": 62968, + "ui-checks": 62969, + "ui-radios-grid": 62970, + "ui-radios": 62971, + "umbrella-fill": 62972, + "umbrella": 62973, + "union": 62974, + "unlock-fill": 62975, + "unlock": 62976, + "upc-scan": 62977, + "upc": 62978, + "upload": 62979, + "vector-pen": 62980, + "view-list": 62981, + "view-stacked": 62982, + "vinyl-fill": 62983, + "vinyl": 62984, + "voicemail": 62985, + "volume-down-fill": 62986, + "volume-down": 62987, + "volume-mute-fill": 62988, + "volume-mute": 62989, + "volume-off-fill": 62990, + "volume-off": 62991, + "volume-up-fill": 62992, + "volume-up": 62993, + "vr": 62994, + "wallet-fill": 62995, + "wallet": 62996, + "wallet2": 62997, + "watch": 62998, + "water": 62999, + "whatsapp": 63000, + "wifi-1": 63001, + "wifi-2": 63002, + "wifi-off": 63003, + "wifi": 63004, + "wind": 63005, + "window-dock": 63006, + "window-sidebar": 63007, + "window": 63008, + "wrench": 63009, + "x-circle-fill": 63010, + "x-circle": 63011, + "x-diamond-fill": 63012, + "x-diamond": 63013, + "x-octagon-fill": 63014, + "x-octagon": 63015, + "x-square-fill": 63016, + "x-square": 63017, + "x": 63018, + "youtube": 63019, + "zoom-in": 63020, + "zoom-out": 63021, + "bank": 63022, + "bank2": 63023, + "bell-slash-fill": 63024, + "bell-slash": 63025, + "cash-coin": 63026, + "check-lg": 63027, + "coin": 63028, + "currency-bitcoin": 63029, + "currency-dollar": 63030, + "currency-euro": 63031, + "currency-exchange": 63032, + "currency-pound": 63033, + "currency-yen": 63034, + "dash-lg": 63035, + "exclamation-lg": 63036, + "file-earmark-pdf-fill": 63037, + "file-earmark-pdf": 63038, + "file-pdf-fill": 63039, + "file-pdf": 63040, + "gender-ambiguous": 63041, + "gender-female": 63042, + "gender-male": 63043, + "gender-trans": 63044, + "headset-vr": 63045, + "info-lg": 63046, + "mastodon": 63047, + "messenger": 63048, + "piggy-bank-fill": 63049, + "piggy-bank": 63050, + "pin-map-fill": 63051, + "pin-map": 63052, + "plus-lg": 63053, + "question-lg": 63054, + "recycle": 63055, + "reddit": 63056, + "safe-fill": 63057, + "safe2-fill": 63058, + "safe2": 63059, + "sd-card-fill": 63060, + "sd-card": 63061, + "skype": 63062, + "slash-lg": 63063, + "translate": 63064, + "x-lg": 63065, + "safe": 63066, + "apple": 63067, + "microsoft": 63069, + "windows": 63070, + "behance": 63068, + "dribbble": 63071, + "line": 63072, + "medium": 63073, + "paypal": 63074, + "pinterest": 63075, + "signal": 63076, + "snapchat": 63077, + "spotify": 63078, + "stack-overflow": 63079, + "strava": 63080, + "wordpress": 63081, + "vimeo": 63082, + "activity": 63083, + "easel2-fill": 63084, + "easel2": 63085, + "easel3-fill": 63086, + "easel3": 63087, + "fan": 63088, + "fingerprint": 63089, + "graph-down-arrow": 63090, + "graph-up-arrow": 63091, + "hypnotize": 63092, + "magic": 63093, + "person-rolodex": 63094, + "person-video": 63095, + "person-video2": 63096, + "person-video3": 63097, + "person-workspace": 63098, + "radioactive": 63099, + "webcam-fill": 63100, + "webcam": 63101, + "yin-yang": 63102, + "bandaid-fill": 63104, + "bandaid": 63105, + "bluetooth": 63106, + "body-text": 63107, + "boombox": 63108, + "boxes": 63109, + "dpad-fill": 63110, + "dpad": 63111, + "ear-fill": 63112, + "ear": 63113, + "envelope-check-1": 63114, + "envelope-check-fill": 63115, + "envelope-check": 63116, + "envelope-dash-1": 63117, + "envelope-dash-fill": 63118, + "envelope-dash": 63119, + "envelope-exclamation-1": 63120, + "envelope-exclamation-fill": 63121, + "envelope-exclamation": 63122, + "envelope-plus-fill": 63123, + "envelope-plus": 63124, + "envelope-slash-1": 63125, + "envelope-slash-fill": 63126, + "envelope-slash": 63127, + "envelope-x-1": 63128, + "envelope-x-fill": 63129, + "envelope-x": 63130, + "explicit-fill": 63131, + "explicit": 63132, + "git": 63133, + "infinity": 63134, + "list-columns-reverse": 63135, + "list-columns": 63136, + "meta": 63137, + "mortorboard-fill": 63138, + "mortorboard": 63139, + "nintendo-switch": 63140, + "pc-display-horizontal": 63141, + "pc-display": 63142, + "pc-horizontal": 63143, + "pc": 63144, + "playstation": 63145, + "plus-slash-minus": 63146, + "projector-fill": 63147, + "projector": 63148, + "qr-code-scan": 63149, + "qr-code": 63150, + "quora": 63151, + "quote": 63152, + "robot": 63153, + "send-check-fill": 63154, + "send-check": 63155, + "send-dash-fill": 63156, + "send-dash": 63157, + "send-exclamation-1": 63158, + "send-exclamation-fill": 63159, + "send-exclamation": 63160, + "send-fill": 63161, + "send-plus-fill": 63162, + "send-plus": 63163, + "send-slash-fill": 63164, + "send-slash": 63165, + "send-x-fill": 63166, + "send-x": 63167, + "send": 63168, + "steam": 63169, + "terminal-dash-1": 63170, + "terminal-dash": 63171, + "terminal-plus": 63172, + "terminal-split": 63173, + "ticket-detailed-fill": 63174, + "ticket-detailed": 63175, + "ticket-fill": 63176, + "ticket-perforated-fill": 63177, + "ticket-perforated": 63178, + "ticket": 63179, + "tiktok": 63180, + "window-dash": 63181, + "window-desktop": 63182, + "window-fullscreen": 63183, + "window-plus": 63184, + "window-split": 63185, + "window-stack": 63186, + "window-x": 63187, + "xbox": 63188, + "ethernet": 63189, + "hdmi-fill": 63190, + "hdmi": 63191, + "usb-c-fill": 63192, + "usb-c": 63193, + "usb-fill": 63194, + "usb-plug-fill": 63195, + "usb-plug": 63196, + "usb-symbol": 63197, + "usb": 63198, + "boombox-fill": 63199, + "displayport-1": 63200, + "displayport": 63201, + "gpu-card": 63202, + "memory": 63203, + "modem-fill": 63204, + "modem": 63205, + "motherboard-fill": 63206, + "motherboard": 63207, + "optical-audio-fill": 63208, + "optical-audio": 63209, + "pci-card": 63210, + "router-fill": 63211, + "router": 63212, + "ssd-fill": 63213, + "ssd": 63214, + "thunderbolt-fill": 63215, + "thunderbolt": 63216, + "usb-drive-fill": 63217, + "usb-drive": 63218, + "usb-micro-fill": 63219, + "usb-micro": 63220, + "usb-mini-fill": 63221, + "usb-mini": 63222, + "cloud-haze2": 63223, + "device-hdd-fill": 63224, + "device-hdd": 63225, + "device-ssd-fill": 63226, + "device-ssd": 63227, + "displayport-fill": 63228, + "mortarboard-fill": 63229, + "mortarboard": 63230, + "terminal-x": 63231, + "arrow-through-heart-fill": 63232, + "arrow-through-heart": 63233, + "badge-sd-fill": 63234, + "badge-sd": 63235, + "bag-heart-fill": 63236, + "bag-heart": 63237, + "balloon-fill": 63238, + "balloon-heart-fill": 63239, + "balloon-heart": 63240, + "balloon": 63241, + "box2-fill": 63242, + "box2-heart-fill": 63243, + "box2-heart": 63244, + "box2": 63245, + "braces-asterisk": 63246, + "calendar-heart-fill": 63247, + "calendar-heart": 63248, + "calendar2-heart-fill": 63249, + "calendar2-heart": 63250, + "chat-heart-fill": 63251, + "chat-heart": 63252, + "chat-left-heart-fill": 63253, + "chat-left-heart": 63254, + "chat-right-heart-fill": 63255, + "chat-right-heart": 63256, + "chat-square-heart-fill": 63257, + "chat-square-heart": 63258, + "clipboard-check-fill": 63259, + "clipboard-data-fill": 63260, + "clipboard-fill": 63261, + "clipboard-heart-fill": 63262, + "clipboard-heart": 63263, + "clipboard-minus-fill": 63264, + "clipboard-plus-fill": 63265, + "clipboard-pulse": 63266, + "clipboard-x-fill": 63267, + "clipboard2-check-fill": 63268, + "clipboard2-check": 63269, + "clipboard2-data-fill": 63270, + "clipboard2-data": 63271, + "clipboard2-fill": 63272, + "clipboard2-heart-fill": 63273, + "clipboard2-heart": 63274, + "clipboard2-minus-fill": 63275, + "clipboard2-minus": 63276, + "clipboard2-plus-fill": 63277, + "clipboard2-plus": 63278, + "clipboard2-pulse-fill": 63279, + "clipboard2-pulse": 63280, + "clipboard2-x-fill": 63281, + "clipboard2-x": 63282, + "clipboard2": 63283, + "emoji-kiss-fill": 63284, + "emoji-kiss": 63285, + "envelope-heart-fill": 63286, + "envelope-heart": 63287, + "envelope-open-heart-fill": 63288, + "envelope-open-heart": 63289, + "envelope-paper-fill": 63290, + "envelope-paper-heart-fill": 63291, + "envelope-paper-heart": 63292, + "envelope-paper": 63293, + "filetype-aac": 63294, + "filetype-ai": 63295, + "filetype-bmp": 63296, + "filetype-cs": 63297, + "filetype-css": 63298, + "filetype-csv": 63299, + "filetype-doc": 63300, + "filetype-docx": 63301, + "filetype-exe": 63302, + "filetype-gif": 63303, + "filetype-heic": 63304, + "filetype-html": 63305, + "filetype-java": 63306, + "filetype-jpg": 63307, + "filetype-js": 63308, + "filetype-jsx": 63309, + "filetype-key": 63310, + "filetype-m4p": 63311, + "filetype-md": 63312, + "filetype-mdx": 63313, + "filetype-mov": 63314, + "filetype-mp3": 63315, + "filetype-mp4": 63316, + "filetype-otf": 63317, + "filetype-pdf": 63318, + "filetype-php": 63319, + "filetype-png": 63320, + "filetype-ppt-1": 63321, + "filetype-ppt": 63322, + "filetype-psd": 63323, + "filetype-py": 63324, + "filetype-raw": 63325, + "filetype-rb": 63326, + "filetype-sass": 63327, + "filetype-scss": 63328, + "filetype-sh": 63329, + "filetype-svg": 63330, + "filetype-tiff": 63331, + "filetype-tsx": 63332, + "filetype-ttf": 63333, + "filetype-txt": 63334, + "filetype-wav": 63335, + "filetype-woff": 63336, + "filetype-xls-1": 63337, + "filetype-xls": 63338, + "filetype-xml": 63339, + "filetype-yml": 63340, + "heart-arrow": 63341, + "heart-pulse-fill": 63342, + "heart-pulse": 63343, + "heartbreak-fill": 63344, + "heartbreak": 63345, + "hearts": 63346, + "hospital-fill": 63347, + "hospital": 63348, + "house-heart-fill": 63349, + "house-heart": 63350, + "incognito": 63351, + "magnet-fill": 63352, + "magnet": 63353, + "person-heart": 63354, + "person-hearts": 63355, + "phone-flip": 63356, + "plugin": 63357, + "postage-fill": 63358, + "postage-heart-fill": 63359, + "postage-heart": 63360, + "postage": 63361, + "postcard-fill": 63362, + "postcard-heart-fill": 63363, + "postcard-heart": 63364, + "postcard": 63365, + "search-heart-fill": 63366, + "search-heart": 63367, + "sliders2-vertical": 63368, + "sliders2": 63369, + "trash3-fill": 63370, + "trash3": 63371, + "valentine": 63372, + "valentine2": 63373, + "wrench-adjustable-circle-fill": 63374, + "wrench-adjustable-circle": 63375, + "wrench-adjustable": 63376, + "filetype-json": 63377, + "filetype-pptx": 63378, + "filetype-xlsx": 63379, + "1-circle-1": 63380, + "1-circle-fill-1": 63381, + "1-circle-fill": 63382, + "1-circle": 63383, + "1-square-fill": 63384, + "1-square": 63385, + "2-circle-1": 63386, + "2-circle-fill-1": 63387, + "2-circle-fill": 63388, + "2-circle": 63389, + "2-square-fill": 63390, + "2-square": 63391, + "3-circle-1": 63392, + "3-circle-fill-1": 63393, + "3-circle-fill": 63394, + "3-circle": 63395, + "3-square-fill": 63396, + "3-square": 63397, + "4-circle-1": 63398, + "4-circle-fill-1": 63399, + "4-circle-fill": 63400, + "4-circle": 63401, + "4-square-fill": 63402, + "4-square": 63403, + "5-circle-1": 63404, + "5-circle-fill-1": 63405, + "5-circle-fill": 63406, + "5-circle": 63407, + "5-square-fill": 63408, + "5-square": 63409, + "6-circle-1": 63410, + "6-circle-fill-1": 63411, + "6-circle-fill": 63412, + "6-circle": 63413, + "6-square-fill": 63414, + "6-square": 63415, + "7-circle-1": 63416, + "7-circle-fill-1": 63417, + "7-circle-fill": 63418, + "7-circle": 63419, + "7-square-fill": 63420, + "7-square": 63421, + "8-circle-1": 63422, + "8-circle-fill-1": 63423, + "8-circle-fill": 63424, + "8-circle": 63425, + "8-square-fill": 63426, + "8-square": 63427, + "9-circle-1": 63428, + "9-circle-fill-1": 63429, + "9-circle-fill": 63430, + "9-circle": 63431, + "9-square-fill": 63432, + "9-square": 63433, + "airplane-engines-fill": 63434, + "airplane-engines": 63435, + "airplane-fill": 63436, + "airplane": 63437, + "alexa": 63438, + "alipay": 63439, + "android": 63440, + "android2": 63441, + "box-fill": 63442, + "box-seam-fill": 63443, + "browser-chrome": 63444, + "browser-edge": 63445, + "browser-firefox": 63446, + "browser-safari": 63447, + "c-circle-1": 63448, + "c-circle-fill-1": 63449, + "c-circle-fill": 63450, + "c-circle": 63451, + "c-square-fill": 63452, + "c-square": 63453, + "capsule-pill": 63454, + "capsule": 63455, + "car-front-fill": 63456, + "car-front": 63457, + "cassette-fill": 63458, + "cassette": 63459, + "cc-circle-1": 63460, + "cc-circle-fill-1": 63461, + "cc-circle-fill": 63462, + "cc-circle": 63463, + "cc-square-fill": 63464, + "cc-square": 63465, + "cup-hot-fill": 63466, + "cup-hot": 63467, + "currency-rupee": 63468, + "dropbox": 63469, + "escape": 63470, + "fast-forward-btn-fill": 63471, + "fast-forward-btn": 63472, + "fast-forward-circle-fill": 63473, + "fast-forward-circle": 63474, + "fast-forward-fill": 63475, + "fast-forward": 63476, + "filetype-sql": 63477, + "fire": 63478, + "google-play": 63479, + "h-circle-1": 63480, + "h-circle-fill-1": 63481, + "h-circle-fill": 63482, + "h-circle": 63483, + "h-square-fill": 63484, + "h-square": 63485, + "indent": 63486, + "lungs-fill": 63487, + "lungs": 63488, + "microsoft-teams": 63489, + "p-circle-1": 63490, + "p-circle-fill-1": 63491, + "p-circle-fill": 63492, + "p-circle": 63493, + "p-square-fill": 63494, + "p-square": 63495, + "pass-fill": 63496, + "pass": 63497, + "prescription": 63498, + "prescription2": 63499, + "r-circle-1": 63500, + "r-circle-fill-1": 63501, + "r-circle-fill": 63502, + "r-circle": 63503, + "r-square-fill": 63504, + "r-square": 63505, + "repeat-1": 63506, + "repeat": 63507, + "rewind-btn-fill": 63508, + "rewind-btn": 63509, + "rewind-circle-fill": 63510, + "rewind-circle": 63511, + "rewind-fill": 63512, + "rewind": 63513, + "train-freight-front-fill": 63514, + "train-freight-front": 63515, + "train-front-fill": 63516, + "train-front": 63517, + "train-lightrail-front-fill": 63518, + "train-lightrail-front": 63519, + "truck-front-fill": 63520, + "truck-front": 63521, + "ubuntu": 63522, + "unindent": 63523, + "unity": 63524, + "universal-access-circle": 63525, + "universal-access": 63526, + "virus": 63527, + "virus2": 63528, + "wechat": 63529, + "yelp": 63530, + "sign-stop-fill": 63531, + "sign-stop-lights-fill": 63532, + "sign-stop-lights": 63533, + "sign-stop": 63534, + "sign-turn-left-fill": 63535, + "sign-turn-left": 63536, + "sign-turn-right-fill": 63537, + "sign-turn-right": 63538, + "sign-turn-slight-left-fill": 63539, + "sign-turn-slight-left": 63540, + "sign-turn-slight-right-fill": 63541, + "sign-turn-slight-right": 63542, + "sign-yield-fill": 63543, + "sign-yield": 63544, + "ev-station-fill": 63545, + "ev-station": 63546, + "fuel-pump-diesel-fill": 63547, + "fuel-pump-diesel": 63548, + "fuel-pump-fill": 63549, + "fuel-pump": 63550 +} \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.scss b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.scss new file mode 100644 index 0000000..99770d0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.scss @@ -0,0 +1,3738 @@ +$bootstrap-icons-font: "bootstrap-icons" !default; +$bootstrap-icons-font-dir: "./fonts" !default; +$bootstrap-icons-font-file: #{$bootstrap-icons-font-dir}/#{$bootstrap-icons-font} !default; +$bootstrap-icons-font-hash: "8d200481aa7f02a2d63a331fc782cfaf" !default; +$bootstrap-icons-font-src: url("#{$bootstrap-icons-font-file}.woff2?#{$bootstrap-icons-font-hash}") format("woff2"), url("#{$bootstrap-icons-font-file}.woff?#{$bootstrap-icons-font-hash}") format("woff") !default; + +@font-face { + font-display: block; + font-family: $bootstrap-icons-font; + src: $bootstrap-icons-font-src; +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: $bootstrap-icons-font !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +$bootstrap-icons-map: ( + "123": "\f67f", + "alarm-fill": "\f101", + "alarm": "\f102", + "align-bottom": "\f103", + "align-center": "\f104", + "align-end": "\f105", + "align-middle": "\f106", + "align-start": "\f107", + "align-top": "\f108", + "alt": "\f109", + "app-indicator": "\f10a", + "app": "\f10b", + "archive-fill": "\f10c", + "archive": "\f10d", + "arrow-90deg-down": "\f10e", + "arrow-90deg-left": "\f10f", + "arrow-90deg-right": "\f110", + "arrow-90deg-up": "\f111", + "arrow-bar-down": "\f112", + "arrow-bar-left": "\f113", + "arrow-bar-right": "\f114", + "arrow-bar-up": "\f115", + "arrow-clockwise": "\f116", + "arrow-counterclockwise": "\f117", + "arrow-down-circle-fill": "\f118", + "arrow-down-circle": "\f119", + "arrow-down-left-circle-fill": "\f11a", + "arrow-down-left-circle": "\f11b", + "arrow-down-left-square-fill": "\f11c", + "arrow-down-left-square": "\f11d", + "arrow-down-left": "\f11e", + "arrow-down-right-circle-fill": "\f11f", + "arrow-down-right-circle": "\f120", + "arrow-down-right-square-fill": "\f121", + "arrow-down-right-square": "\f122", + "arrow-down-right": "\f123", + "arrow-down-short": "\f124", + "arrow-down-square-fill": "\f125", + "arrow-down-square": "\f126", + "arrow-down-up": "\f127", + "arrow-down": "\f128", + "arrow-left-circle-fill": "\f129", + "arrow-left-circle": "\f12a", + "arrow-left-right": "\f12b", + "arrow-left-short": "\f12c", + "arrow-left-square-fill": "\f12d", + "arrow-left-square": "\f12e", + "arrow-left": "\f12f", + "arrow-repeat": "\f130", + "arrow-return-left": "\f131", + "arrow-return-right": "\f132", + "arrow-right-circle-fill": "\f133", + "arrow-right-circle": "\f134", + "arrow-right-short": "\f135", + "arrow-right-square-fill": "\f136", + "arrow-right-square": "\f137", + "arrow-right": "\f138", + "arrow-up-circle-fill": "\f139", + "arrow-up-circle": "\f13a", + "arrow-up-left-circle-fill": "\f13b", + "arrow-up-left-circle": "\f13c", + "arrow-up-left-square-fill": "\f13d", + "arrow-up-left-square": "\f13e", + "arrow-up-left": "\f13f", + "arrow-up-right-circle-fill": "\f140", + "arrow-up-right-circle": "\f141", + "arrow-up-right-square-fill": "\f142", + "arrow-up-right-square": "\f143", + "arrow-up-right": "\f144", + "arrow-up-short": "\f145", + "arrow-up-square-fill": "\f146", + "arrow-up-square": "\f147", + "arrow-up": "\f148", + "arrows-angle-contract": "\f149", + "arrows-angle-expand": "\f14a", + "arrows-collapse": "\f14b", + "arrows-expand": "\f14c", + "arrows-fullscreen": "\f14d", + "arrows-move": "\f14e", + "aspect-ratio-fill": "\f14f", + "aspect-ratio": "\f150", + "asterisk": "\f151", + "at": "\f152", + "award-fill": "\f153", + "award": "\f154", + "back": "\f155", + "backspace-fill": "\f156", + "backspace-reverse-fill": "\f157", + "backspace-reverse": "\f158", + "backspace": "\f159", + "badge-3d-fill": "\f15a", + "badge-3d": "\f15b", + "badge-4k-fill": "\f15c", + "badge-4k": "\f15d", + "badge-8k-fill": "\f15e", + "badge-8k": "\f15f", + "badge-ad-fill": "\f160", + "badge-ad": "\f161", + "badge-ar-fill": "\f162", + "badge-ar": "\f163", + "badge-cc-fill": "\f164", + "badge-cc": "\f165", + "badge-hd-fill": "\f166", + "badge-hd": "\f167", + "badge-tm-fill": "\f168", + "badge-tm": "\f169", + "badge-vo-fill": "\f16a", + "badge-vo": "\f16b", + "badge-vr-fill": "\f16c", + "badge-vr": "\f16d", + "badge-wc-fill": "\f16e", + "badge-wc": "\f16f", + "bag-check-fill": "\f170", + "bag-check": "\f171", + "bag-dash-fill": "\f172", + "bag-dash": "\f173", + "bag-fill": "\f174", + "bag-plus-fill": "\f175", + "bag-plus": "\f176", + "bag-x-fill": "\f177", + "bag-x": "\f178", + "bag": "\f179", + "bar-chart-fill": "\f17a", + "bar-chart-line-fill": "\f17b", + "bar-chart-line": "\f17c", + "bar-chart-steps": "\f17d", + "bar-chart": "\f17e", + "basket-fill": "\f17f", + "basket": "\f180", + "basket2-fill": "\f181", + "basket2": "\f182", + "basket3-fill": "\f183", + "basket3": "\f184", + "battery-charging": "\f185", + "battery-full": "\f186", + "battery-half": "\f187", + "battery": "\f188", + "bell-fill": "\f189", + "bell": "\f18a", + "bezier": "\f18b", + "bezier2": "\f18c", + "bicycle": "\f18d", + "binoculars-fill": "\f18e", + "binoculars": "\f18f", + "blockquote-left": "\f190", + "blockquote-right": "\f191", + "book-fill": "\f192", + "book-half": "\f193", + "book": "\f194", + "bookmark-check-fill": "\f195", + "bookmark-check": "\f196", + "bookmark-dash-fill": "\f197", + "bookmark-dash": "\f198", + "bookmark-fill": "\f199", + "bookmark-heart-fill": "\f19a", + "bookmark-heart": "\f19b", + "bookmark-plus-fill": "\f19c", + "bookmark-plus": "\f19d", + "bookmark-star-fill": "\f19e", + "bookmark-star": "\f19f", + "bookmark-x-fill": "\f1a0", + "bookmark-x": "\f1a1", + "bookmark": "\f1a2", + "bookmarks-fill": "\f1a3", + "bookmarks": "\f1a4", + "bookshelf": "\f1a5", + "bootstrap-fill": "\f1a6", + "bootstrap-reboot": "\f1a7", + "bootstrap": "\f1a8", + "border-all": "\f1a9", + "border-bottom": "\f1aa", + "border-center": "\f1ab", + "border-inner": "\f1ac", + "border-left": "\f1ad", + "border-middle": "\f1ae", + "border-outer": "\f1af", + "border-right": "\f1b0", + "border-style": "\f1b1", + "border-top": "\f1b2", + "border-width": "\f1b3", + "border": "\f1b4", + "bounding-box-circles": "\f1b5", + "bounding-box": "\f1b6", + "box-arrow-down-left": "\f1b7", + "box-arrow-down-right": "\f1b8", + "box-arrow-down": "\f1b9", + "box-arrow-in-down-left": "\f1ba", + "box-arrow-in-down-right": "\f1bb", + "box-arrow-in-down": "\f1bc", + "box-arrow-in-left": "\f1bd", + "box-arrow-in-right": "\f1be", + "box-arrow-in-up-left": "\f1bf", + "box-arrow-in-up-right": "\f1c0", + "box-arrow-in-up": "\f1c1", + "box-arrow-left": "\f1c2", + "box-arrow-right": "\f1c3", + "box-arrow-up-left": "\f1c4", + "box-arrow-up-right": "\f1c5", + "box-arrow-up": "\f1c6", + "box-seam": "\f1c7", + "box": "\f1c8", + "braces": "\f1c9", + "bricks": "\f1ca", + "briefcase-fill": "\f1cb", + "briefcase": "\f1cc", + "brightness-alt-high-fill": "\f1cd", + "brightness-alt-high": "\f1ce", + "brightness-alt-low-fill": "\f1cf", + "brightness-alt-low": "\f1d0", + "brightness-high-fill": "\f1d1", + "brightness-high": "\f1d2", + "brightness-low-fill": "\f1d3", + "brightness-low": "\f1d4", + "broadcast-pin": "\f1d5", + "broadcast": "\f1d6", + "brush-fill": "\f1d7", + "brush": "\f1d8", + "bucket-fill": "\f1d9", + "bucket": "\f1da", + "bug-fill": "\f1db", + "bug": "\f1dc", + "building": "\f1dd", + "bullseye": "\f1de", + "calculator-fill": "\f1df", + "calculator": "\f1e0", + "calendar-check-fill": "\f1e1", + "calendar-check": "\f1e2", + "calendar-date-fill": "\f1e3", + "calendar-date": "\f1e4", + "calendar-day-fill": "\f1e5", + "calendar-day": "\f1e6", + "calendar-event-fill": "\f1e7", + "calendar-event": "\f1e8", + "calendar-fill": "\f1e9", + "calendar-minus-fill": "\f1ea", + "calendar-minus": "\f1eb", + "calendar-month-fill": "\f1ec", + "calendar-month": "\f1ed", + "calendar-plus-fill": "\f1ee", + "calendar-plus": "\f1ef", + "calendar-range-fill": "\f1f0", + "calendar-range": "\f1f1", + "calendar-week-fill": "\f1f2", + "calendar-week": "\f1f3", + "calendar-x-fill": "\f1f4", + "calendar-x": "\f1f5", + "calendar": "\f1f6", + "calendar2-check-fill": "\f1f7", + "calendar2-check": "\f1f8", + "calendar2-date-fill": "\f1f9", + "calendar2-date": "\f1fa", + "calendar2-day-fill": "\f1fb", + "calendar2-day": "\f1fc", + "calendar2-event-fill": "\f1fd", + "calendar2-event": "\f1fe", + "calendar2-fill": "\f1ff", + "calendar2-minus-fill": "\f200", + "calendar2-minus": "\f201", + "calendar2-month-fill": "\f202", + "calendar2-month": "\f203", + "calendar2-plus-fill": "\f204", + "calendar2-plus": "\f205", + "calendar2-range-fill": "\f206", + "calendar2-range": "\f207", + "calendar2-week-fill": "\f208", + "calendar2-week": "\f209", + "calendar2-x-fill": "\f20a", + "calendar2-x": "\f20b", + "calendar2": "\f20c", + "calendar3-event-fill": "\f20d", + "calendar3-event": "\f20e", + "calendar3-fill": "\f20f", + "calendar3-range-fill": "\f210", + "calendar3-range": "\f211", + "calendar3-week-fill": "\f212", + "calendar3-week": "\f213", + "calendar3": "\f214", + "calendar4-event": "\f215", + "calendar4-range": "\f216", + "calendar4-week": "\f217", + "calendar4": "\f218", + "camera-fill": "\f219", + "camera-reels-fill": "\f21a", + "camera-reels": "\f21b", + "camera-video-fill": "\f21c", + "camera-video-off-fill": "\f21d", + "camera-video-off": "\f21e", + "camera-video": "\f21f", + "camera": "\f220", + "camera2": "\f221", + "capslock-fill": "\f222", + "capslock": "\f223", + "card-checklist": "\f224", + "card-heading": "\f225", + "card-image": "\f226", + "card-list": "\f227", + "card-text": "\f228", + "caret-down-fill": "\f229", + "caret-down-square-fill": "\f22a", + "caret-down-square": "\f22b", + "caret-down": "\f22c", + "caret-left-fill": "\f22d", + "caret-left-square-fill": "\f22e", + "caret-left-square": "\f22f", + "caret-left": "\f230", + "caret-right-fill": "\f231", + "caret-right-square-fill": "\f232", + "caret-right-square": "\f233", + "caret-right": "\f234", + "caret-up-fill": "\f235", + "caret-up-square-fill": "\f236", + "caret-up-square": "\f237", + "caret-up": "\f238", + "cart-check-fill": "\f239", + "cart-check": "\f23a", + "cart-dash-fill": "\f23b", + "cart-dash": "\f23c", + "cart-fill": "\f23d", + "cart-plus-fill": "\f23e", + "cart-plus": "\f23f", + "cart-x-fill": "\f240", + "cart-x": "\f241", + "cart": "\f242", + "cart2": "\f243", + "cart3": "\f244", + "cart4": "\f245", + "cash-stack": "\f246", + "cash": "\f247", + "cast": "\f248", + "chat-dots-fill": "\f249", + "chat-dots": "\f24a", + "chat-fill": "\f24b", + "chat-left-dots-fill": "\f24c", + "chat-left-dots": "\f24d", + "chat-left-fill": "\f24e", + "chat-left-quote-fill": "\f24f", + "chat-left-quote": "\f250", + "chat-left-text-fill": "\f251", + "chat-left-text": "\f252", + "chat-left": "\f253", + "chat-quote-fill": "\f254", + "chat-quote": "\f255", + "chat-right-dots-fill": "\f256", + "chat-right-dots": "\f257", + "chat-right-fill": "\f258", + "chat-right-quote-fill": "\f259", + "chat-right-quote": "\f25a", + "chat-right-text-fill": "\f25b", + "chat-right-text": "\f25c", + "chat-right": "\f25d", + "chat-square-dots-fill": "\f25e", + "chat-square-dots": "\f25f", + "chat-square-fill": "\f260", + "chat-square-quote-fill": "\f261", + "chat-square-quote": "\f262", + "chat-square-text-fill": "\f263", + "chat-square-text": "\f264", + "chat-square": "\f265", + "chat-text-fill": "\f266", + "chat-text": "\f267", + "chat": "\f268", + "check-all": "\f269", + "check-circle-fill": "\f26a", + "check-circle": "\f26b", + "check-square-fill": "\f26c", + "check-square": "\f26d", + "check": "\f26e", + "check2-all": "\f26f", + "check2-circle": "\f270", + "check2-square": "\f271", + "check2": "\f272", + "chevron-bar-contract": "\f273", + "chevron-bar-down": "\f274", + "chevron-bar-expand": "\f275", + "chevron-bar-left": "\f276", + "chevron-bar-right": "\f277", + "chevron-bar-up": "\f278", + "chevron-compact-down": "\f279", + "chevron-compact-left": "\f27a", + "chevron-compact-right": "\f27b", + "chevron-compact-up": "\f27c", + "chevron-contract": "\f27d", + "chevron-double-down": "\f27e", + "chevron-double-left": "\f27f", + "chevron-double-right": "\f280", + "chevron-double-up": "\f281", + "chevron-down": "\f282", + "chevron-expand": "\f283", + "chevron-left": "\f284", + "chevron-right": "\f285", + "chevron-up": "\f286", + "circle-fill": "\f287", + "circle-half": "\f288", + "circle-square": "\f289", + "circle": "\f28a", + "clipboard-check": "\f28b", + "clipboard-data": "\f28c", + "clipboard-minus": "\f28d", + "clipboard-plus": "\f28e", + "clipboard-x": "\f28f", + "clipboard": "\f290", + "clock-fill": "\f291", + "clock-history": "\f292", + "clock": "\f293", + "cloud-arrow-down-fill": "\f294", + "cloud-arrow-down": "\f295", + "cloud-arrow-up-fill": "\f296", + "cloud-arrow-up": "\f297", + "cloud-check-fill": "\f298", + "cloud-check": "\f299", + "cloud-download-fill": "\f29a", + "cloud-download": "\f29b", + "cloud-drizzle-fill": "\f29c", + "cloud-drizzle": "\f29d", + "cloud-fill": "\f29e", + "cloud-fog-fill": "\f29f", + "cloud-fog": "\f2a0", + "cloud-fog2-fill": "\f2a1", + "cloud-fog2": "\f2a2", + "cloud-hail-fill": "\f2a3", + "cloud-hail": "\f2a4", + "cloud-haze-1": "\f2a5", + "cloud-haze-fill": "\f2a6", + "cloud-haze": "\f2a7", + "cloud-haze2-fill": "\f2a8", + "cloud-lightning-fill": "\f2a9", + "cloud-lightning-rain-fill": "\f2aa", + "cloud-lightning-rain": "\f2ab", + "cloud-lightning": "\f2ac", + "cloud-minus-fill": "\f2ad", + "cloud-minus": "\f2ae", + "cloud-moon-fill": "\f2af", + "cloud-moon": "\f2b0", + "cloud-plus-fill": "\f2b1", + "cloud-plus": "\f2b2", + "cloud-rain-fill": "\f2b3", + "cloud-rain-heavy-fill": "\f2b4", + "cloud-rain-heavy": "\f2b5", + "cloud-rain": "\f2b6", + "cloud-slash-fill": "\f2b7", + "cloud-slash": "\f2b8", + "cloud-sleet-fill": "\f2b9", + "cloud-sleet": "\f2ba", + "cloud-snow-fill": "\f2bb", + "cloud-snow": "\f2bc", + "cloud-sun-fill": "\f2bd", + "cloud-sun": "\f2be", + "cloud-upload-fill": "\f2bf", + "cloud-upload": "\f2c0", + "cloud": "\f2c1", + "clouds-fill": "\f2c2", + "clouds": "\f2c3", + "cloudy-fill": "\f2c4", + "cloudy": "\f2c5", + "code-slash": "\f2c6", + "code-square": "\f2c7", + "code": "\f2c8", + "collection-fill": "\f2c9", + "collection-play-fill": "\f2ca", + "collection-play": "\f2cb", + "collection": "\f2cc", + "columns-gap": "\f2cd", + "columns": "\f2ce", + "command": "\f2cf", + "compass-fill": "\f2d0", + "compass": "\f2d1", + "cone-striped": "\f2d2", + "cone": "\f2d3", + "controller": "\f2d4", + "cpu-fill": "\f2d5", + "cpu": "\f2d6", + "credit-card-2-back-fill": "\f2d7", + "credit-card-2-back": "\f2d8", + "credit-card-2-front-fill": "\f2d9", + "credit-card-2-front": "\f2da", + "credit-card-fill": "\f2db", + "credit-card": "\f2dc", + "crop": "\f2dd", + "cup-fill": "\f2de", + "cup-straw": "\f2df", + "cup": "\f2e0", + "cursor-fill": "\f2e1", + "cursor-text": "\f2e2", + "cursor": "\f2e3", + "dash-circle-dotted": "\f2e4", + "dash-circle-fill": "\f2e5", + "dash-circle": "\f2e6", + "dash-square-dotted": "\f2e7", + "dash-square-fill": "\f2e8", + "dash-square": "\f2e9", + "dash": "\f2ea", + "diagram-2-fill": "\f2eb", + "diagram-2": "\f2ec", + "diagram-3-fill": "\f2ed", + "diagram-3": "\f2ee", + "diamond-fill": "\f2ef", + "diamond-half": "\f2f0", + "diamond": "\f2f1", + "dice-1-fill": "\f2f2", + "dice-1": "\f2f3", + "dice-2-fill": "\f2f4", + "dice-2": "\f2f5", + "dice-3-fill": "\f2f6", + "dice-3": "\f2f7", + "dice-4-fill": "\f2f8", + "dice-4": "\f2f9", + "dice-5-fill": "\f2fa", + "dice-5": "\f2fb", + "dice-6-fill": "\f2fc", + "dice-6": "\f2fd", + "disc-fill": "\f2fe", + "disc": "\f2ff", + "discord": "\f300", + "display-fill": "\f301", + "display": "\f302", + "distribute-horizontal": "\f303", + "distribute-vertical": "\f304", + "door-closed-fill": "\f305", + "door-closed": "\f306", + "door-open-fill": "\f307", + "door-open": "\f308", + "dot": "\f309", + "download": "\f30a", + "droplet-fill": "\f30b", + "droplet-half": "\f30c", + "droplet": "\f30d", + "earbuds": "\f30e", + "easel-fill": "\f30f", + "easel": "\f310", + "egg-fill": "\f311", + "egg-fried": "\f312", + "egg": "\f313", + "eject-fill": "\f314", + "eject": "\f315", + "emoji-angry-fill": "\f316", + "emoji-angry": "\f317", + "emoji-dizzy-fill": "\f318", + "emoji-dizzy": "\f319", + "emoji-expressionless-fill": "\f31a", + "emoji-expressionless": "\f31b", + "emoji-frown-fill": "\f31c", + "emoji-frown": "\f31d", + "emoji-heart-eyes-fill": "\f31e", + "emoji-heart-eyes": "\f31f", + "emoji-laughing-fill": "\f320", + "emoji-laughing": "\f321", + "emoji-neutral-fill": "\f322", + "emoji-neutral": "\f323", + "emoji-smile-fill": "\f324", + "emoji-smile-upside-down-fill": "\f325", + "emoji-smile-upside-down": "\f326", + "emoji-smile": "\f327", + "emoji-sunglasses-fill": "\f328", + "emoji-sunglasses": "\f329", + "emoji-wink-fill": "\f32a", + "emoji-wink": "\f32b", + "envelope-fill": "\f32c", + "envelope-open-fill": "\f32d", + "envelope-open": "\f32e", + "envelope": "\f32f", + "eraser-fill": "\f330", + "eraser": "\f331", + "exclamation-circle-fill": "\f332", + "exclamation-circle": "\f333", + "exclamation-diamond-fill": "\f334", + "exclamation-diamond": "\f335", + "exclamation-octagon-fill": "\f336", + "exclamation-octagon": "\f337", + "exclamation-square-fill": "\f338", + "exclamation-square": "\f339", + "exclamation-triangle-fill": "\f33a", + "exclamation-triangle": "\f33b", + "exclamation": "\f33c", + "exclude": "\f33d", + "eye-fill": "\f33e", + "eye-slash-fill": "\f33f", + "eye-slash": "\f340", + "eye": "\f341", + "eyedropper": "\f342", + "eyeglasses": "\f343", + "facebook": "\f344", + "file-arrow-down-fill": "\f345", + "file-arrow-down": "\f346", + "file-arrow-up-fill": "\f347", + "file-arrow-up": "\f348", + "file-bar-graph-fill": "\f349", + "file-bar-graph": "\f34a", + "file-binary-fill": "\f34b", + "file-binary": "\f34c", + "file-break-fill": "\f34d", + "file-break": "\f34e", + "file-check-fill": "\f34f", + "file-check": "\f350", + "file-code-fill": "\f351", + "file-code": "\f352", + "file-diff-fill": "\f353", + "file-diff": "\f354", + "file-earmark-arrow-down-fill": "\f355", + "file-earmark-arrow-down": "\f356", + "file-earmark-arrow-up-fill": "\f357", + "file-earmark-arrow-up": "\f358", + "file-earmark-bar-graph-fill": "\f359", + "file-earmark-bar-graph": "\f35a", + "file-earmark-binary-fill": "\f35b", + "file-earmark-binary": "\f35c", + "file-earmark-break-fill": "\f35d", + "file-earmark-break": "\f35e", + "file-earmark-check-fill": "\f35f", + "file-earmark-check": "\f360", + "file-earmark-code-fill": "\f361", + "file-earmark-code": "\f362", + "file-earmark-diff-fill": "\f363", + "file-earmark-diff": "\f364", + "file-earmark-easel-fill": "\f365", + "file-earmark-easel": "\f366", + "file-earmark-excel-fill": "\f367", + "file-earmark-excel": "\f368", + "file-earmark-fill": "\f369", + "file-earmark-font-fill": "\f36a", + "file-earmark-font": "\f36b", + "file-earmark-image-fill": "\f36c", + "file-earmark-image": "\f36d", + "file-earmark-lock-fill": "\f36e", + "file-earmark-lock": "\f36f", + "file-earmark-lock2-fill": "\f370", + "file-earmark-lock2": "\f371", + "file-earmark-medical-fill": "\f372", + "file-earmark-medical": "\f373", + "file-earmark-minus-fill": "\f374", + "file-earmark-minus": "\f375", + "file-earmark-music-fill": "\f376", + "file-earmark-music": "\f377", + "file-earmark-person-fill": "\f378", + "file-earmark-person": "\f379", + "file-earmark-play-fill": "\f37a", + "file-earmark-play": "\f37b", + "file-earmark-plus-fill": "\f37c", + "file-earmark-plus": "\f37d", + "file-earmark-post-fill": "\f37e", + "file-earmark-post": "\f37f", + "file-earmark-ppt-fill": "\f380", + "file-earmark-ppt": "\f381", + "file-earmark-richtext-fill": "\f382", + "file-earmark-richtext": "\f383", + "file-earmark-ruled-fill": "\f384", + "file-earmark-ruled": "\f385", + "file-earmark-slides-fill": "\f386", + "file-earmark-slides": "\f387", + "file-earmark-spreadsheet-fill": "\f388", + "file-earmark-spreadsheet": "\f389", + "file-earmark-text-fill": "\f38a", + "file-earmark-text": "\f38b", + "file-earmark-word-fill": "\f38c", + "file-earmark-word": "\f38d", + "file-earmark-x-fill": "\f38e", + "file-earmark-x": "\f38f", + "file-earmark-zip-fill": "\f390", + "file-earmark-zip": "\f391", + "file-earmark": "\f392", + "file-easel-fill": "\f393", + "file-easel": "\f394", + "file-excel-fill": "\f395", + "file-excel": "\f396", + "file-fill": "\f397", + "file-font-fill": "\f398", + "file-font": "\f399", + "file-image-fill": "\f39a", + "file-image": "\f39b", + "file-lock-fill": "\f39c", + "file-lock": "\f39d", + "file-lock2-fill": "\f39e", + "file-lock2": "\f39f", + "file-medical-fill": "\f3a0", + "file-medical": "\f3a1", + "file-minus-fill": "\f3a2", + "file-minus": "\f3a3", + "file-music-fill": "\f3a4", + "file-music": "\f3a5", + "file-person-fill": "\f3a6", + "file-person": "\f3a7", + "file-play-fill": "\f3a8", + "file-play": "\f3a9", + "file-plus-fill": "\f3aa", + "file-plus": "\f3ab", + "file-post-fill": "\f3ac", + "file-post": "\f3ad", + "file-ppt-fill": "\f3ae", + "file-ppt": "\f3af", + "file-richtext-fill": "\f3b0", + "file-richtext": "\f3b1", + "file-ruled-fill": "\f3b2", + "file-ruled": "\f3b3", + "file-slides-fill": "\f3b4", + "file-slides": "\f3b5", + "file-spreadsheet-fill": "\f3b6", + "file-spreadsheet": "\f3b7", + "file-text-fill": "\f3b8", + "file-text": "\f3b9", + "file-word-fill": "\f3ba", + "file-word": "\f3bb", + "file-x-fill": "\f3bc", + "file-x": "\f3bd", + "file-zip-fill": "\f3be", + "file-zip": "\f3bf", + "file": "\f3c0", + "files-alt": "\f3c1", + "files": "\f3c2", + "film": "\f3c3", + "filter-circle-fill": "\f3c4", + "filter-circle": "\f3c5", + "filter-left": "\f3c6", + "filter-right": "\f3c7", + "filter-square-fill": "\f3c8", + "filter-square": "\f3c9", + "filter": "\f3ca", + "flag-fill": "\f3cb", + "flag": "\f3cc", + "flower1": "\f3cd", + "flower2": "\f3ce", + "flower3": "\f3cf", + "folder-check": "\f3d0", + "folder-fill": "\f3d1", + "folder-minus": "\f3d2", + "folder-plus": "\f3d3", + "folder-symlink-fill": "\f3d4", + "folder-symlink": "\f3d5", + "folder-x": "\f3d6", + "folder": "\f3d7", + "folder2-open": "\f3d8", + "folder2": "\f3d9", + "fonts": "\f3da", + "forward-fill": "\f3db", + "forward": "\f3dc", + "front": "\f3dd", + "fullscreen-exit": "\f3de", + "fullscreen": "\f3df", + "funnel-fill": "\f3e0", + "funnel": "\f3e1", + "gear-fill": "\f3e2", + "gear-wide-connected": "\f3e3", + "gear-wide": "\f3e4", + "gear": "\f3e5", + "gem": "\f3e6", + "geo-alt-fill": "\f3e7", + "geo-alt": "\f3e8", + "geo-fill": "\f3e9", + "geo": "\f3ea", + "gift-fill": "\f3eb", + "gift": "\f3ec", + "github": "\f3ed", + "globe": "\f3ee", + "globe2": "\f3ef", + "google": "\f3f0", + "graph-down": "\f3f1", + "graph-up": "\f3f2", + "grid-1x2-fill": "\f3f3", + "grid-1x2": "\f3f4", + "grid-3x2-gap-fill": "\f3f5", + "grid-3x2-gap": "\f3f6", + "grid-3x2": "\f3f7", + "grid-3x3-gap-fill": "\f3f8", + "grid-3x3-gap": "\f3f9", + "grid-3x3": "\f3fa", + "grid-fill": "\f3fb", + "grid": "\f3fc", + "grip-horizontal": "\f3fd", + "grip-vertical": "\f3fe", + "hammer": "\f3ff", + "hand-index-fill": "\f400", + "hand-index-thumb-fill": "\f401", + "hand-index-thumb": "\f402", + "hand-index": "\f403", + "hand-thumbs-down-fill": "\f404", + "hand-thumbs-down": "\f405", + "hand-thumbs-up-fill": "\f406", + "hand-thumbs-up": "\f407", + "handbag-fill": "\f408", + "handbag": "\f409", + "hash": "\f40a", + "hdd-fill": "\f40b", + "hdd-network-fill": "\f40c", + "hdd-network": "\f40d", + "hdd-rack-fill": "\f40e", + "hdd-rack": "\f40f", + "hdd-stack-fill": "\f410", + "hdd-stack": "\f411", + "hdd": "\f412", + "headphones": "\f413", + "headset": "\f414", + "heart-fill": "\f415", + "heart-half": "\f416", + "heart": "\f417", + "heptagon-fill": "\f418", + "heptagon-half": "\f419", + "heptagon": "\f41a", + "hexagon-fill": "\f41b", + "hexagon-half": "\f41c", + "hexagon": "\f41d", + "hourglass-bottom": "\f41e", + "hourglass-split": "\f41f", + "hourglass-top": "\f420", + "hourglass": "\f421", + "house-door-fill": "\f422", + "house-door": "\f423", + "house-fill": "\f424", + "house": "\f425", + "hr": "\f426", + "hurricane": "\f427", + "image-alt": "\f428", + "image-fill": "\f429", + "image": "\f42a", + "images": "\f42b", + "inbox-fill": "\f42c", + "inbox": "\f42d", + "inboxes-fill": "\f42e", + "inboxes": "\f42f", + "info-circle-fill": "\f430", + "info-circle": "\f431", + "info-square-fill": "\f432", + "info-square": "\f433", + "info": "\f434", + "input-cursor-text": "\f435", + "input-cursor": "\f436", + "instagram": "\f437", + "intersect": "\f438", + "journal-album": "\f439", + "journal-arrow-down": "\f43a", + "journal-arrow-up": "\f43b", + "journal-bookmark-fill": "\f43c", + "journal-bookmark": "\f43d", + "journal-check": "\f43e", + "journal-code": "\f43f", + "journal-medical": "\f440", + "journal-minus": "\f441", + "journal-plus": "\f442", + "journal-richtext": "\f443", + "journal-text": "\f444", + "journal-x": "\f445", + "journal": "\f446", + "journals": "\f447", + "joystick": "\f448", + "justify-left": "\f449", + "justify-right": "\f44a", + "justify": "\f44b", + "kanban-fill": "\f44c", + "kanban": "\f44d", + "key-fill": "\f44e", + "key": "\f44f", + "keyboard-fill": "\f450", + "keyboard": "\f451", + "ladder": "\f452", + "lamp-fill": "\f453", + "lamp": "\f454", + "laptop-fill": "\f455", + "laptop": "\f456", + "layer-backward": "\f457", + "layer-forward": "\f458", + "layers-fill": "\f459", + "layers-half": "\f45a", + "layers": "\f45b", + "layout-sidebar-inset-reverse": "\f45c", + "layout-sidebar-inset": "\f45d", + "layout-sidebar-reverse": "\f45e", + "layout-sidebar": "\f45f", + "layout-split": "\f460", + "layout-text-sidebar-reverse": "\f461", + "layout-text-sidebar": "\f462", + "layout-text-window-reverse": "\f463", + "layout-text-window": "\f464", + "layout-three-columns": "\f465", + "layout-wtf": "\f466", + "life-preserver": "\f467", + "lightbulb-fill": "\f468", + "lightbulb-off-fill": "\f469", + "lightbulb-off": "\f46a", + "lightbulb": "\f46b", + "lightning-charge-fill": "\f46c", + "lightning-charge": "\f46d", + "lightning-fill": "\f46e", + "lightning": "\f46f", + "link-45deg": "\f470", + "link": "\f471", + "linkedin": "\f472", + "list-check": "\f473", + "list-nested": "\f474", + "list-ol": "\f475", + "list-stars": "\f476", + "list-task": "\f477", + "list-ul": "\f478", + "list": "\f479", + "lock-fill": "\f47a", + "lock": "\f47b", + "mailbox": "\f47c", + "mailbox2": "\f47d", + "map-fill": "\f47e", + "map": "\f47f", + "markdown-fill": "\f480", + "markdown": "\f481", + "mask": "\f482", + "megaphone-fill": "\f483", + "megaphone": "\f484", + "menu-app-fill": "\f485", + "menu-app": "\f486", + "menu-button-fill": "\f487", + "menu-button-wide-fill": "\f488", + "menu-button-wide": "\f489", + "menu-button": "\f48a", + "menu-down": "\f48b", + "menu-up": "\f48c", + "mic-fill": "\f48d", + "mic-mute-fill": "\f48e", + "mic-mute": "\f48f", + "mic": "\f490", + "minecart-loaded": "\f491", + "minecart": "\f492", + "moisture": "\f493", + "moon-fill": "\f494", + "moon-stars-fill": "\f495", + "moon-stars": "\f496", + "moon": "\f497", + "mouse-fill": "\f498", + "mouse": "\f499", + "mouse2-fill": "\f49a", + "mouse2": "\f49b", + "mouse3-fill": "\f49c", + "mouse3": "\f49d", + "music-note-beamed": "\f49e", + "music-note-list": "\f49f", + "music-note": "\f4a0", + "music-player-fill": "\f4a1", + "music-player": "\f4a2", + "newspaper": "\f4a3", + "node-minus-fill": "\f4a4", + "node-minus": "\f4a5", + "node-plus-fill": "\f4a6", + "node-plus": "\f4a7", + "nut-fill": "\f4a8", + "nut": "\f4a9", + "octagon-fill": "\f4aa", + "octagon-half": "\f4ab", + "octagon": "\f4ac", + "option": "\f4ad", + "outlet": "\f4ae", + "paint-bucket": "\f4af", + "palette-fill": "\f4b0", + "palette": "\f4b1", + "palette2": "\f4b2", + "paperclip": "\f4b3", + "paragraph": "\f4b4", + "patch-check-fill": "\f4b5", + "patch-check": "\f4b6", + "patch-exclamation-fill": "\f4b7", + "patch-exclamation": "\f4b8", + "patch-minus-fill": "\f4b9", + "patch-minus": "\f4ba", + "patch-plus-fill": "\f4bb", + "patch-plus": "\f4bc", + "patch-question-fill": "\f4bd", + "patch-question": "\f4be", + "pause-btn-fill": "\f4bf", + "pause-btn": "\f4c0", + "pause-circle-fill": "\f4c1", + "pause-circle": "\f4c2", + "pause-fill": "\f4c3", + "pause": "\f4c4", + "peace-fill": "\f4c5", + "peace": "\f4c6", + "pen-fill": "\f4c7", + "pen": "\f4c8", + "pencil-fill": "\f4c9", + "pencil-square": "\f4ca", + "pencil": "\f4cb", + "pentagon-fill": "\f4cc", + "pentagon-half": "\f4cd", + "pentagon": "\f4ce", + "people-fill": "\f4cf", + "people": "\f4d0", + "percent": "\f4d1", + "person-badge-fill": "\f4d2", + "person-badge": "\f4d3", + "person-bounding-box": "\f4d4", + "person-check-fill": "\f4d5", + "person-check": "\f4d6", + "person-circle": "\f4d7", + "person-dash-fill": "\f4d8", + "person-dash": "\f4d9", + "person-fill": "\f4da", + "person-lines-fill": "\f4db", + "person-plus-fill": "\f4dc", + "person-plus": "\f4dd", + "person-square": "\f4de", + "person-x-fill": "\f4df", + "person-x": "\f4e0", + "person": "\f4e1", + "phone-fill": "\f4e2", + "phone-landscape-fill": "\f4e3", + "phone-landscape": "\f4e4", + "phone-vibrate-fill": "\f4e5", + "phone-vibrate": "\f4e6", + "phone": "\f4e7", + "pie-chart-fill": "\f4e8", + "pie-chart": "\f4e9", + "pin-angle-fill": "\f4ea", + "pin-angle": "\f4eb", + "pin-fill": "\f4ec", + "pin": "\f4ed", + "pip-fill": "\f4ee", + "pip": "\f4ef", + "play-btn-fill": "\f4f0", + "play-btn": "\f4f1", + "play-circle-fill": "\f4f2", + "play-circle": "\f4f3", + "play-fill": "\f4f4", + "play": "\f4f5", + "plug-fill": "\f4f6", + "plug": "\f4f7", + "plus-circle-dotted": "\f4f8", + "plus-circle-fill": "\f4f9", + "plus-circle": "\f4fa", + "plus-square-dotted": "\f4fb", + "plus-square-fill": "\f4fc", + "plus-square": "\f4fd", + "plus": "\f4fe", + "power": "\f4ff", + "printer-fill": "\f500", + "printer": "\f501", + "puzzle-fill": "\f502", + "puzzle": "\f503", + "question-circle-fill": "\f504", + "question-circle": "\f505", + "question-diamond-fill": "\f506", + "question-diamond": "\f507", + "question-octagon-fill": "\f508", + "question-octagon": "\f509", + "question-square-fill": "\f50a", + "question-square": "\f50b", + "question": "\f50c", + "rainbow": "\f50d", + "receipt-cutoff": "\f50e", + "receipt": "\f50f", + "reception-0": "\f510", + "reception-1": "\f511", + "reception-2": "\f512", + "reception-3": "\f513", + "reception-4": "\f514", + "record-btn-fill": "\f515", + "record-btn": "\f516", + "record-circle-fill": "\f517", + "record-circle": "\f518", + "record-fill": "\f519", + "record": "\f51a", + "record2-fill": "\f51b", + "record2": "\f51c", + "reply-all-fill": "\f51d", + "reply-all": "\f51e", + "reply-fill": "\f51f", + "reply": "\f520", + "rss-fill": "\f521", + "rss": "\f522", + "rulers": "\f523", + "save-fill": "\f524", + "save": "\f525", + "save2-fill": "\f526", + "save2": "\f527", + "scissors": "\f528", + "screwdriver": "\f529", + "search": "\f52a", + "segmented-nav": "\f52b", + "server": "\f52c", + "share-fill": "\f52d", + "share": "\f52e", + "shield-check": "\f52f", + "shield-exclamation": "\f530", + "shield-fill-check": "\f531", + "shield-fill-exclamation": "\f532", + "shield-fill-minus": "\f533", + "shield-fill-plus": "\f534", + "shield-fill-x": "\f535", + "shield-fill": "\f536", + "shield-lock-fill": "\f537", + "shield-lock": "\f538", + "shield-minus": "\f539", + "shield-plus": "\f53a", + "shield-shaded": "\f53b", + "shield-slash-fill": "\f53c", + "shield-slash": "\f53d", + "shield-x": "\f53e", + "shield": "\f53f", + "shift-fill": "\f540", + "shift": "\f541", + "shop-window": "\f542", + "shop": "\f543", + "shuffle": "\f544", + "signpost-2-fill": "\f545", + "signpost-2": "\f546", + "signpost-fill": "\f547", + "signpost-split-fill": "\f548", + "signpost-split": "\f549", + "signpost": "\f54a", + "sim-fill": "\f54b", + "sim": "\f54c", + "skip-backward-btn-fill": "\f54d", + "skip-backward-btn": "\f54e", + "skip-backward-circle-fill": "\f54f", + "skip-backward-circle": "\f550", + "skip-backward-fill": "\f551", + "skip-backward": "\f552", + "skip-end-btn-fill": "\f553", + "skip-end-btn": "\f554", + "skip-end-circle-fill": "\f555", + "skip-end-circle": "\f556", + "skip-end-fill": "\f557", + "skip-end": "\f558", + "skip-forward-btn-fill": "\f559", + "skip-forward-btn": "\f55a", + "skip-forward-circle-fill": "\f55b", + "skip-forward-circle": "\f55c", + "skip-forward-fill": "\f55d", + "skip-forward": "\f55e", + "skip-start-btn-fill": "\f55f", + "skip-start-btn": "\f560", + "skip-start-circle-fill": "\f561", + "skip-start-circle": "\f562", + "skip-start-fill": "\f563", + "skip-start": "\f564", + "slack": "\f565", + "slash-circle-fill": "\f566", + "slash-circle": "\f567", + "slash-square-fill": "\f568", + "slash-square": "\f569", + "slash": "\f56a", + "sliders": "\f56b", + "smartwatch": "\f56c", + "snow": "\f56d", + "snow2": "\f56e", + "snow3": "\f56f", + "sort-alpha-down-alt": "\f570", + "sort-alpha-down": "\f571", + "sort-alpha-up-alt": "\f572", + "sort-alpha-up": "\f573", + "sort-down-alt": "\f574", + "sort-down": "\f575", + "sort-numeric-down-alt": "\f576", + "sort-numeric-down": "\f577", + "sort-numeric-up-alt": "\f578", + "sort-numeric-up": "\f579", + "sort-up-alt": "\f57a", + "sort-up": "\f57b", + "soundwave": "\f57c", + "speaker-fill": "\f57d", + "speaker": "\f57e", + "speedometer": "\f57f", + "speedometer2": "\f580", + "spellcheck": "\f581", + "square-fill": "\f582", + "square-half": "\f583", + "square": "\f584", + "stack": "\f585", + "star-fill": "\f586", + "star-half": "\f587", + "star": "\f588", + "stars": "\f589", + "stickies-fill": "\f58a", + "stickies": "\f58b", + "sticky-fill": "\f58c", + "sticky": "\f58d", + "stop-btn-fill": "\f58e", + "stop-btn": "\f58f", + "stop-circle-fill": "\f590", + "stop-circle": "\f591", + "stop-fill": "\f592", + "stop": "\f593", + "stoplights-fill": "\f594", + "stoplights": "\f595", + "stopwatch-fill": "\f596", + "stopwatch": "\f597", + "subtract": "\f598", + "suit-club-fill": "\f599", + "suit-club": "\f59a", + "suit-diamond-fill": "\f59b", + "suit-diamond": "\f59c", + "suit-heart-fill": "\f59d", + "suit-heart": "\f59e", + "suit-spade-fill": "\f59f", + "suit-spade": "\f5a0", + "sun-fill": "\f5a1", + "sun": "\f5a2", + "sunglasses": "\f5a3", + "sunrise-fill": "\f5a4", + "sunrise": "\f5a5", + "sunset-fill": "\f5a6", + "sunset": "\f5a7", + "symmetry-horizontal": "\f5a8", + "symmetry-vertical": "\f5a9", + "table": "\f5aa", + "tablet-fill": "\f5ab", + "tablet-landscape-fill": "\f5ac", + "tablet-landscape": "\f5ad", + "tablet": "\f5ae", + "tag-fill": "\f5af", + "tag": "\f5b0", + "tags-fill": "\f5b1", + "tags": "\f5b2", + "telegram": "\f5b3", + "telephone-fill": "\f5b4", + "telephone-forward-fill": "\f5b5", + "telephone-forward": "\f5b6", + "telephone-inbound-fill": "\f5b7", + "telephone-inbound": "\f5b8", + "telephone-minus-fill": "\f5b9", + "telephone-minus": "\f5ba", + "telephone-outbound-fill": "\f5bb", + "telephone-outbound": "\f5bc", + "telephone-plus-fill": "\f5bd", + "telephone-plus": "\f5be", + "telephone-x-fill": "\f5bf", + "telephone-x": "\f5c0", + "telephone": "\f5c1", + "terminal-fill": "\f5c2", + "terminal": "\f5c3", + "text-center": "\f5c4", + "text-indent-left": "\f5c5", + "text-indent-right": "\f5c6", + "text-left": "\f5c7", + "text-paragraph": "\f5c8", + "text-right": "\f5c9", + "textarea-resize": "\f5ca", + "textarea-t": "\f5cb", + "textarea": "\f5cc", + "thermometer-half": "\f5cd", + "thermometer-high": "\f5ce", + "thermometer-low": "\f5cf", + "thermometer-snow": "\f5d0", + "thermometer-sun": "\f5d1", + "thermometer": "\f5d2", + "three-dots-vertical": "\f5d3", + "three-dots": "\f5d4", + "toggle-off": "\f5d5", + "toggle-on": "\f5d6", + "toggle2-off": "\f5d7", + "toggle2-on": "\f5d8", + "toggles": "\f5d9", + "toggles2": "\f5da", + "tools": "\f5db", + "tornado": "\f5dc", + "trash-fill": "\f5dd", + "trash": "\f5de", + "trash2-fill": "\f5df", + "trash2": "\f5e0", + "tree-fill": "\f5e1", + "tree": "\f5e2", + "triangle-fill": "\f5e3", + "triangle-half": "\f5e4", + "triangle": "\f5e5", + "trophy-fill": "\f5e6", + "trophy": "\f5e7", + "tropical-storm": "\f5e8", + "truck-flatbed": "\f5e9", + "truck": "\f5ea", + "tsunami": "\f5eb", + "tv-fill": "\f5ec", + "tv": "\f5ed", + "twitch": "\f5ee", + "twitter": "\f5ef", + "type-bold": "\f5f0", + "type-h1": "\f5f1", + "type-h2": "\f5f2", + "type-h3": "\f5f3", + "type-italic": "\f5f4", + "type-strikethrough": "\f5f5", + "type-underline": "\f5f6", + "type": "\f5f7", + "ui-checks-grid": "\f5f8", + "ui-checks": "\f5f9", + "ui-radios-grid": "\f5fa", + "ui-radios": "\f5fb", + "umbrella-fill": "\f5fc", + "umbrella": "\f5fd", + "union": "\f5fe", + "unlock-fill": "\f5ff", + "unlock": "\f600", + "upc-scan": "\f601", + "upc": "\f602", + "upload": "\f603", + "vector-pen": "\f604", + "view-list": "\f605", + "view-stacked": "\f606", + "vinyl-fill": "\f607", + "vinyl": "\f608", + "voicemail": "\f609", + "volume-down-fill": "\f60a", + "volume-down": "\f60b", + "volume-mute-fill": "\f60c", + "volume-mute": "\f60d", + "volume-off-fill": "\f60e", + "volume-off": "\f60f", + "volume-up-fill": "\f610", + "volume-up": "\f611", + "vr": "\f612", + "wallet-fill": "\f613", + "wallet": "\f614", + "wallet2": "\f615", + "watch": "\f616", + "water": "\f617", + "whatsapp": "\f618", + "wifi-1": "\f619", + "wifi-2": "\f61a", + "wifi-off": "\f61b", + "wifi": "\f61c", + "wind": "\f61d", + "window-dock": "\f61e", + "window-sidebar": "\f61f", + "window": "\f620", + "wrench": "\f621", + "x-circle-fill": "\f622", + "x-circle": "\f623", + "x-diamond-fill": "\f624", + "x-diamond": "\f625", + "x-octagon-fill": "\f626", + "x-octagon": "\f627", + "x-square-fill": "\f628", + "x-square": "\f629", + "x": "\f62a", + "youtube": "\f62b", + "zoom-in": "\f62c", + "zoom-out": "\f62d", + "bank": "\f62e", + "bank2": "\f62f", + "bell-slash-fill": "\f630", + "bell-slash": "\f631", + "cash-coin": "\f632", + "check-lg": "\f633", + "coin": "\f634", + "currency-bitcoin": "\f635", + "currency-dollar": "\f636", + "currency-euro": "\f637", + "currency-exchange": "\f638", + "currency-pound": "\f639", + "currency-yen": "\f63a", + "dash-lg": "\f63b", + "exclamation-lg": "\f63c", + "file-earmark-pdf-fill": "\f63d", + "file-earmark-pdf": "\f63e", + "file-pdf-fill": "\f63f", + "file-pdf": "\f640", + "gender-ambiguous": "\f641", + "gender-female": "\f642", + "gender-male": "\f643", + "gender-trans": "\f644", + "headset-vr": "\f645", + "info-lg": "\f646", + "mastodon": "\f647", + "messenger": "\f648", + "piggy-bank-fill": "\f649", + "piggy-bank": "\f64a", + "pin-map-fill": "\f64b", + "pin-map": "\f64c", + "plus-lg": "\f64d", + "question-lg": "\f64e", + "recycle": "\f64f", + "reddit": "\f650", + "safe-fill": "\f651", + "safe2-fill": "\f652", + "safe2": "\f653", + "sd-card-fill": "\f654", + "sd-card": "\f655", + "skype": "\f656", + "slash-lg": "\f657", + "translate": "\f658", + "x-lg": "\f659", + "safe": "\f65a", + "apple": "\f65b", + "microsoft": "\f65d", + "windows": "\f65e", + "behance": "\f65c", + "dribbble": "\f65f", + "line": "\f660", + "medium": "\f661", + "paypal": "\f662", + "pinterest": "\f663", + "signal": "\f664", + "snapchat": "\f665", + "spotify": "\f666", + "stack-overflow": "\f667", + "strava": "\f668", + "wordpress": "\f669", + "vimeo": "\f66a", + "activity": "\f66b", + "easel2-fill": "\f66c", + "easel2": "\f66d", + "easel3-fill": "\f66e", + "easel3": "\f66f", + "fan": "\f670", + "fingerprint": "\f671", + "graph-down-arrow": "\f672", + "graph-up-arrow": "\f673", + "hypnotize": "\f674", + "magic": "\f675", + "person-rolodex": "\f676", + "person-video": "\f677", + "person-video2": "\f678", + "person-video3": "\f679", + "person-workspace": "\f67a", + "radioactive": "\f67b", + "webcam-fill": "\f67c", + "webcam": "\f67d", + "yin-yang": "\f67e", + "bandaid-fill": "\f680", + "bandaid": "\f681", + "bluetooth": "\f682", + "body-text": "\f683", + "boombox": "\f684", + "boxes": "\f685", + "dpad-fill": "\f686", + "dpad": "\f687", + "ear-fill": "\f688", + "ear": "\f689", + "envelope-check-1": "\f68a", + "envelope-check-fill": "\f68b", + "envelope-check": "\f68c", + "envelope-dash-1": "\f68d", + "envelope-dash-fill": "\f68e", + "envelope-dash": "\f68f", + "envelope-exclamation-1": "\f690", + "envelope-exclamation-fill": "\f691", + "envelope-exclamation": "\f692", + "envelope-plus-fill": "\f693", + "envelope-plus": "\f694", + "envelope-slash-1": "\f695", + "envelope-slash-fill": "\f696", + "envelope-slash": "\f697", + "envelope-x-1": "\f698", + "envelope-x-fill": "\f699", + "envelope-x": "\f69a", + "explicit-fill": "\f69b", + "explicit": "\f69c", + "git": "\f69d", + "infinity": "\f69e", + "list-columns-reverse": "\f69f", + "list-columns": "\f6a0", + "meta": "\f6a1", + "mortorboard-fill": "\f6a2", + "mortorboard": "\f6a3", + "nintendo-switch": "\f6a4", + "pc-display-horizontal": "\f6a5", + "pc-display": "\f6a6", + "pc-horizontal": "\f6a7", + "pc": "\f6a8", + "playstation": "\f6a9", + "plus-slash-minus": "\f6aa", + "projector-fill": "\f6ab", + "projector": "\f6ac", + "qr-code-scan": "\f6ad", + "qr-code": "\f6ae", + "quora": "\f6af", + "quote": "\f6b0", + "robot": "\f6b1", + "send-check-fill": "\f6b2", + "send-check": "\f6b3", + "send-dash-fill": "\f6b4", + "send-dash": "\f6b5", + "send-exclamation-1": "\f6b6", + "send-exclamation-fill": "\f6b7", + "send-exclamation": "\f6b8", + "send-fill": "\f6b9", + "send-plus-fill": "\f6ba", + "send-plus": "\f6bb", + "send-slash-fill": "\f6bc", + "send-slash": "\f6bd", + "send-x-fill": "\f6be", + "send-x": "\f6bf", + "send": "\f6c0", + "steam": "\f6c1", + "terminal-dash-1": "\f6c2", + "terminal-dash": "\f6c3", + "terminal-plus": "\f6c4", + "terminal-split": "\f6c5", + "ticket-detailed-fill": "\f6c6", + "ticket-detailed": "\f6c7", + "ticket-fill": "\f6c8", + "ticket-perforated-fill": "\f6c9", + "ticket-perforated": "\f6ca", + "ticket": "\f6cb", + "tiktok": "\f6cc", + "window-dash": "\f6cd", + "window-desktop": "\f6ce", + "window-fullscreen": "\f6cf", + "window-plus": "\f6d0", + "window-split": "\f6d1", + "window-stack": "\f6d2", + "window-x": "\f6d3", + "xbox": "\f6d4", + "ethernet": "\f6d5", + "hdmi-fill": "\f6d6", + "hdmi": "\f6d7", + "usb-c-fill": "\f6d8", + "usb-c": "\f6d9", + "usb-fill": "\f6da", + "usb-plug-fill": "\f6db", + "usb-plug": "\f6dc", + "usb-symbol": "\f6dd", + "usb": "\f6de", + "boombox-fill": "\f6df", + "displayport-1": "\f6e0", + "displayport": "\f6e1", + "gpu-card": "\f6e2", + "memory": "\f6e3", + "modem-fill": "\f6e4", + "modem": "\f6e5", + "motherboard-fill": "\f6e6", + "motherboard": "\f6e7", + "optical-audio-fill": "\f6e8", + "optical-audio": "\f6e9", + "pci-card": "\f6ea", + "router-fill": "\f6eb", + "router": "\f6ec", + "ssd-fill": "\f6ed", + "ssd": "\f6ee", + "thunderbolt-fill": "\f6ef", + "thunderbolt": "\f6f0", + "usb-drive-fill": "\f6f1", + "usb-drive": "\f6f2", + "usb-micro-fill": "\f6f3", + "usb-micro": "\f6f4", + "usb-mini-fill": "\f6f5", + "usb-mini": "\f6f6", + "cloud-haze2": "\f6f7", + "device-hdd-fill": "\f6f8", + "device-hdd": "\f6f9", + "device-ssd-fill": "\f6fa", + "device-ssd": "\f6fb", + "displayport-fill": "\f6fc", + "mortarboard-fill": "\f6fd", + "mortarboard": "\f6fe", + "terminal-x": "\f6ff", + "arrow-through-heart-fill": "\f700", + "arrow-through-heart": "\f701", + "badge-sd-fill": "\f702", + "badge-sd": "\f703", + "bag-heart-fill": "\f704", + "bag-heart": "\f705", + "balloon-fill": "\f706", + "balloon-heart-fill": "\f707", + "balloon-heart": "\f708", + "balloon": "\f709", + "box2-fill": "\f70a", + "box2-heart-fill": "\f70b", + "box2-heart": "\f70c", + "box2": "\f70d", + "braces-asterisk": "\f70e", + "calendar-heart-fill": "\f70f", + "calendar-heart": "\f710", + "calendar2-heart-fill": "\f711", + "calendar2-heart": "\f712", + "chat-heart-fill": "\f713", + "chat-heart": "\f714", + "chat-left-heart-fill": "\f715", + "chat-left-heart": "\f716", + "chat-right-heart-fill": "\f717", + "chat-right-heart": "\f718", + "chat-square-heart-fill": "\f719", + "chat-square-heart": "\f71a", + "clipboard-check-fill": "\f71b", + "clipboard-data-fill": "\f71c", + "clipboard-fill": "\f71d", + "clipboard-heart-fill": "\f71e", + "clipboard-heart": "\f71f", + "clipboard-minus-fill": "\f720", + "clipboard-plus-fill": "\f721", + "clipboard-pulse": "\f722", + "clipboard-x-fill": "\f723", + "clipboard2-check-fill": "\f724", + "clipboard2-check": "\f725", + "clipboard2-data-fill": "\f726", + "clipboard2-data": "\f727", + "clipboard2-fill": "\f728", + "clipboard2-heart-fill": "\f729", + "clipboard2-heart": "\f72a", + "clipboard2-minus-fill": "\f72b", + "clipboard2-minus": "\f72c", + "clipboard2-plus-fill": "\f72d", + "clipboard2-plus": "\f72e", + "clipboard2-pulse-fill": "\f72f", + "clipboard2-pulse": "\f730", + "clipboard2-x-fill": "\f731", + "clipboard2-x": "\f732", + "clipboard2": "\f733", + "emoji-kiss-fill": "\f734", + "emoji-kiss": "\f735", + "envelope-heart-fill": "\f736", + "envelope-heart": "\f737", + "envelope-open-heart-fill": "\f738", + "envelope-open-heart": "\f739", + "envelope-paper-fill": "\f73a", + "envelope-paper-heart-fill": "\f73b", + "envelope-paper-heart": "\f73c", + "envelope-paper": "\f73d", + "filetype-aac": "\f73e", + "filetype-ai": "\f73f", + "filetype-bmp": "\f740", + "filetype-cs": "\f741", + "filetype-css": "\f742", + "filetype-csv": "\f743", + "filetype-doc": "\f744", + "filetype-docx": "\f745", + "filetype-exe": "\f746", + "filetype-gif": "\f747", + "filetype-heic": "\f748", + "filetype-html": "\f749", + "filetype-java": "\f74a", + "filetype-jpg": "\f74b", + "filetype-js": "\f74c", + "filetype-jsx": "\f74d", + "filetype-key": "\f74e", + "filetype-m4p": "\f74f", + "filetype-md": "\f750", + "filetype-mdx": "\f751", + "filetype-mov": "\f752", + "filetype-mp3": "\f753", + "filetype-mp4": "\f754", + "filetype-otf": "\f755", + "filetype-pdf": "\f756", + "filetype-php": "\f757", + "filetype-png": "\f758", + "filetype-ppt-1": "\f759", + "filetype-ppt": "\f75a", + "filetype-psd": "\f75b", + "filetype-py": "\f75c", + "filetype-raw": "\f75d", + "filetype-rb": "\f75e", + "filetype-sass": "\f75f", + "filetype-scss": "\f760", + "filetype-sh": "\f761", + "filetype-svg": "\f762", + "filetype-tiff": "\f763", + "filetype-tsx": "\f764", + "filetype-ttf": "\f765", + "filetype-txt": "\f766", + "filetype-wav": "\f767", + "filetype-woff": "\f768", + "filetype-xls-1": "\f769", + "filetype-xls": "\f76a", + "filetype-xml": "\f76b", + "filetype-yml": "\f76c", + "heart-arrow": "\f76d", + "heart-pulse-fill": "\f76e", + "heart-pulse": "\f76f", + "heartbreak-fill": "\f770", + "heartbreak": "\f771", + "hearts": "\f772", + "hospital-fill": "\f773", + "hospital": "\f774", + "house-heart-fill": "\f775", + "house-heart": "\f776", + "incognito": "\f777", + "magnet-fill": "\f778", + "magnet": "\f779", + "person-heart": "\f77a", + "person-hearts": "\f77b", + "phone-flip": "\f77c", + "plugin": "\f77d", + "postage-fill": "\f77e", + "postage-heart-fill": "\f77f", + "postage-heart": "\f780", + "postage": "\f781", + "postcard-fill": "\f782", + "postcard-heart-fill": "\f783", + "postcard-heart": "\f784", + "postcard": "\f785", + "search-heart-fill": "\f786", + "search-heart": "\f787", + "sliders2-vertical": "\f788", + "sliders2": "\f789", + "trash3-fill": "\f78a", + "trash3": "\f78b", + "valentine": "\f78c", + "valentine2": "\f78d", + "wrench-adjustable-circle-fill": "\f78e", + "wrench-adjustable-circle": "\f78f", + "wrench-adjustable": "\f790", + "filetype-json": "\f791", + "filetype-pptx": "\f792", + "filetype-xlsx": "\f793", + "1-circle-1": "\f794", + "1-circle-fill-1": "\f795", + "1-circle-fill": "\f796", + "1-circle": "\f797", + "1-square-fill": "\f798", + "1-square": "\f799", + "2-circle-1": "\f79a", + "2-circle-fill-1": "\f79b", + "2-circle-fill": "\f79c", + "2-circle": "\f79d", + "2-square-fill": "\f79e", + "2-square": "\f79f", + "3-circle-1": "\f7a0", + "3-circle-fill-1": "\f7a1", + "3-circle-fill": "\f7a2", + "3-circle": "\f7a3", + "3-square-fill": "\f7a4", + "3-square": "\f7a5", + "4-circle-1": "\f7a6", + "4-circle-fill-1": "\f7a7", + "4-circle-fill": "\f7a8", + "4-circle": "\f7a9", + "4-square-fill": "\f7aa", + "4-square": "\f7ab", + "5-circle-1": "\f7ac", + "5-circle-fill-1": "\f7ad", + "5-circle-fill": "\f7ae", + "5-circle": "\f7af", + "5-square-fill": "\f7b0", + "5-square": "\f7b1", + "6-circle-1": "\f7b2", + "6-circle-fill-1": "\f7b3", + "6-circle-fill": "\f7b4", + "6-circle": "\f7b5", + "6-square-fill": "\f7b6", + "6-square": "\f7b7", + "7-circle-1": "\f7b8", + "7-circle-fill-1": "\f7b9", + "7-circle-fill": "\f7ba", + "7-circle": "\f7bb", + "7-square-fill": "\f7bc", + "7-square": "\f7bd", + "8-circle-1": "\f7be", + "8-circle-fill-1": "\f7bf", + "8-circle-fill": "\f7c0", + "8-circle": "\f7c1", + "8-square-fill": "\f7c2", + "8-square": "\f7c3", + "9-circle-1": "\f7c4", + "9-circle-fill-1": "\f7c5", + "9-circle-fill": "\f7c6", + "9-circle": "\f7c7", + "9-square-fill": "\f7c8", + "9-square": "\f7c9", + "airplane-engines-fill": "\f7ca", + "airplane-engines": "\f7cb", + "airplane-fill": "\f7cc", + "airplane": "\f7cd", + "alexa": "\f7ce", + "alipay": "\f7cf", + "android": "\f7d0", + "android2": "\f7d1", + "box-fill": "\f7d2", + "box-seam-fill": "\f7d3", + "browser-chrome": "\f7d4", + "browser-edge": "\f7d5", + "browser-firefox": "\f7d6", + "browser-safari": "\f7d7", + "c-circle-1": "\f7d8", + "c-circle-fill-1": "\f7d9", + "c-circle-fill": "\f7da", + "c-circle": "\f7db", + "c-square-fill": "\f7dc", + "c-square": "\f7dd", + "capsule-pill": "\f7de", + "capsule": "\f7df", + "car-front-fill": "\f7e0", + "car-front": "\f7e1", + "cassette-fill": "\f7e2", + "cassette": "\f7e3", + "cc-circle-1": "\f7e4", + "cc-circle-fill-1": "\f7e5", + "cc-circle-fill": "\f7e6", + "cc-circle": "\f7e7", + "cc-square-fill": "\f7e8", + "cc-square": "\f7e9", + "cup-hot-fill": "\f7ea", + "cup-hot": "\f7eb", + "currency-rupee": "\f7ec", + "dropbox": "\f7ed", + "escape": "\f7ee", + "fast-forward-btn-fill": "\f7ef", + "fast-forward-btn": "\f7f0", + "fast-forward-circle-fill": "\f7f1", + "fast-forward-circle": "\f7f2", + "fast-forward-fill": "\f7f3", + "fast-forward": "\f7f4", + "filetype-sql": "\f7f5", + "fire": "\f7f6", + "google-play": "\f7f7", + "h-circle-1": "\f7f8", + "h-circle-fill-1": "\f7f9", + "h-circle-fill": "\f7fa", + "h-circle": "\f7fb", + "h-square-fill": "\f7fc", + "h-square": "\f7fd", + "indent": "\f7fe", + "lungs-fill": "\f7ff", + "lungs": "\f800", + "microsoft-teams": "\f801", + "p-circle-1": "\f802", + "p-circle-fill-1": "\f803", + "p-circle-fill": "\f804", + "p-circle": "\f805", + "p-square-fill": "\f806", + "p-square": "\f807", + "pass-fill": "\f808", + "pass": "\f809", + "prescription": "\f80a", + "prescription2": "\f80b", + "r-circle-1": "\f80c", + "r-circle-fill-1": "\f80d", + "r-circle-fill": "\f80e", + "r-circle": "\f80f", + "r-square-fill": "\f810", + "r-square": "\f811", + "repeat-1": "\f812", + "repeat": "\f813", + "rewind-btn-fill": "\f814", + "rewind-btn": "\f815", + "rewind-circle-fill": "\f816", + "rewind-circle": "\f817", + "rewind-fill": "\f818", + "rewind": "\f819", + "train-freight-front-fill": "\f81a", + "train-freight-front": "\f81b", + "train-front-fill": "\f81c", + "train-front": "\f81d", + "train-lightrail-front-fill": "\f81e", + "train-lightrail-front": "\f81f", + "truck-front-fill": "\f820", + "truck-front": "\f821", + "ubuntu": "\f822", + "unindent": "\f823", + "unity": "\f824", + "universal-access-circle": "\f825", + "universal-access": "\f826", + "virus": "\f827", + "virus2": "\f828", + "wechat": "\f829", + "yelp": "\f82a", + "sign-stop-fill": "\f82b", + "sign-stop-lights-fill": "\f82c", + "sign-stop-lights": "\f82d", + "sign-stop": "\f82e", + "sign-turn-left-fill": "\f82f", + "sign-turn-left": "\f830", + "sign-turn-right-fill": "\f831", + "sign-turn-right": "\f832", + "sign-turn-slight-left-fill": "\f833", + "sign-turn-slight-left": "\f834", + "sign-turn-slight-right-fill": "\f835", + "sign-turn-slight-right": "\f836", + "sign-yield-fill": "\f837", + "sign-yield": "\f838", + "ev-station-fill": "\f839", + "ev-station": "\f83a", + "fuel-pump-diesel-fill": "\f83b", + "fuel-pump-diesel": "\f83c", + "fuel-pump-fill": "\f83d", + "fuel-pump": "\f83e", +); + +.bi-123::before { content: map-get($bootstrap-icons-map, "123"); } +.bi-alarm-fill::before { content: map-get($bootstrap-icons-map, "alarm-fill"); } +.bi-alarm::before { content: map-get($bootstrap-icons-map, "alarm"); } +.bi-align-bottom::before { content: map-get($bootstrap-icons-map, "align-bottom"); } +.bi-align-center::before { content: map-get($bootstrap-icons-map, "align-center"); } +.bi-align-end::before { content: map-get($bootstrap-icons-map, "align-end"); } +.bi-align-middle::before { content: map-get($bootstrap-icons-map, "align-middle"); } +.bi-align-start::before { content: map-get($bootstrap-icons-map, "align-start"); } +.bi-align-top::before { content: map-get($bootstrap-icons-map, "align-top"); } +.bi-alt::before { content: map-get($bootstrap-icons-map, "alt"); } +.bi-app-indicator::before { content: map-get($bootstrap-icons-map, "app-indicator"); } +.bi-app::before { content: map-get($bootstrap-icons-map, "app"); } +.bi-archive-fill::before { content: map-get($bootstrap-icons-map, "archive-fill"); } +.bi-archive::before { content: map-get($bootstrap-icons-map, "archive"); } +.bi-arrow-90deg-down::before { content: map-get($bootstrap-icons-map, "arrow-90deg-down"); } +.bi-arrow-90deg-left::before { content: map-get($bootstrap-icons-map, "arrow-90deg-left"); } +.bi-arrow-90deg-right::before { content: map-get($bootstrap-icons-map, "arrow-90deg-right"); } +.bi-arrow-90deg-up::before { content: map-get($bootstrap-icons-map, "arrow-90deg-up"); } +.bi-arrow-bar-down::before { content: map-get($bootstrap-icons-map, "arrow-bar-down"); } +.bi-arrow-bar-left::before { content: map-get($bootstrap-icons-map, "arrow-bar-left"); } +.bi-arrow-bar-right::before { content: map-get($bootstrap-icons-map, "arrow-bar-right"); } +.bi-arrow-bar-up::before { content: map-get($bootstrap-icons-map, "arrow-bar-up"); } +.bi-arrow-clockwise::before { content: map-get($bootstrap-icons-map, "arrow-clockwise"); } +.bi-arrow-counterclockwise::before { content: map-get($bootstrap-icons-map, "arrow-counterclockwise"); } +.bi-arrow-down-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-circle-fill"); } +.bi-arrow-down-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-circle"); } +.bi-arrow-down-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-left-circle-fill"); } +.bi-arrow-down-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-left-circle"); } +.bi-arrow-down-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-left-square-fill"); } +.bi-arrow-down-left-square::before { content: map-get($bootstrap-icons-map, "arrow-down-left-square"); } +.bi-arrow-down-left::before { content: map-get($bootstrap-icons-map, "arrow-down-left"); } +.bi-arrow-down-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-right-circle-fill"); } +.bi-arrow-down-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-right-circle"); } +.bi-arrow-down-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-right-square-fill"); } +.bi-arrow-down-right-square::before { content: map-get($bootstrap-icons-map, "arrow-down-right-square"); } +.bi-arrow-down-right::before { content: map-get($bootstrap-icons-map, "arrow-down-right"); } +.bi-arrow-down-short::before { content: map-get($bootstrap-icons-map, "arrow-down-short"); } +.bi-arrow-down-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-square-fill"); } +.bi-arrow-down-square::before { content: map-get($bootstrap-icons-map, "arrow-down-square"); } +.bi-arrow-down-up::before { content: map-get($bootstrap-icons-map, "arrow-down-up"); } +.bi-arrow-down::before { content: map-get($bootstrap-icons-map, "arrow-down"); } +.bi-arrow-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-left-circle-fill"); } +.bi-arrow-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-left-circle"); } +.bi-arrow-left-right::before { content: map-get($bootstrap-icons-map, "arrow-left-right"); } +.bi-arrow-left-short::before { content: map-get($bootstrap-icons-map, "arrow-left-short"); } +.bi-arrow-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-left-square-fill"); } +.bi-arrow-left-square::before { content: map-get($bootstrap-icons-map, "arrow-left-square"); } +.bi-arrow-left::before { content: map-get($bootstrap-icons-map, "arrow-left"); } +.bi-arrow-repeat::before { content: map-get($bootstrap-icons-map, "arrow-repeat"); } +.bi-arrow-return-left::before { content: map-get($bootstrap-icons-map, "arrow-return-left"); } +.bi-arrow-return-right::before { content: map-get($bootstrap-icons-map, "arrow-return-right"); } +.bi-arrow-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-right-circle-fill"); } +.bi-arrow-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-right-circle"); } +.bi-arrow-right-short::before { content: map-get($bootstrap-icons-map, "arrow-right-short"); } +.bi-arrow-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-right-square-fill"); } +.bi-arrow-right-square::before { content: map-get($bootstrap-icons-map, "arrow-right-square"); } +.bi-arrow-right::before { content: map-get($bootstrap-icons-map, "arrow-right"); } +.bi-arrow-up-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-circle-fill"); } +.bi-arrow-up-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-circle"); } +.bi-arrow-up-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-left-circle-fill"); } +.bi-arrow-up-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-left-circle"); } +.bi-arrow-up-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-left-square-fill"); } +.bi-arrow-up-left-square::before { content: map-get($bootstrap-icons-map, "arrow-up-left-square"); } +.bi-arrow-up-left::before { content: map-get($bootstrap-icons-map, "arrow-up-left"); } +.bi-arrow-up-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-right-circle-fill"); } +.bi-arrow-up-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-right-circle"); } +.bi-arrow-up-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-right-square-fill"); } +.bi-arrow-up-right-square::before { content: map-get($bootstrap-icons-map, "arrow-up-right-square"); } +.bi-arrow-up-right::before { content: map-get($bootstrap-icons-map, "arrow-up-right"); } +.bi-arrow-up-short::before { content: map-get($bootstrap-icons-map, "arrow-up-short"); } +.bi-arrow-up-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-square-fill"); } +.bi-arrow-up-square::before { content: map-get($bootstrap-icons-map, "arrow-up-square"); } +.bi-arrow-up::before { content: map-get($bootstrap-icons-map, "arrow-up"); } +.bi-arrows-angle-contract::before { content: map-get($bootstrap-icons-map, "arrows-angle-contract"); } +.bi-arrows-angle-expand::before { content: map-get($bootstrap-icons-map, "arrows-angle-expand"); } +.bi-arrows-collapse::before { content: map-get($bootstrap-icons-map, "arrows-collapse"); } +.bi-arrows-expand::before { content: map-get($bootstrap-icons-map, "arrows-expand"); } +.bi-arrows-fullscreen::before { content: map-get($bootstrap-icons-map, "arrows-fullscreen"); } +.bi-arrows-move::before { content: map-get($bootstrap-icons-map, "arrows-move"); } +.bi-aspect-ratio-fill::before { content: map-get($bootstrap-icons-map, "aspect-ratio-fill"); } +.bi-aspect-ratio::before { content: map-get($bootstrap-icons-map, "aspect-ratio"); } +.bi-asterisk::before { content: map-get($bootstrap-icons-map, "asterisk"); } +.bi-at::before { content: map-get($bootstrap-icons-map, "at"); } +.bi-award-fill::before { content: map-get($bootstrap-icons-map, "award-fill"); } +.bi-award::before { content: map-get($bootstrap-icons-map, "award"); } +.bi-back::before { content: map-get($bootstrap-icons-map, "back"); } +.bi-backspace-fill::before { content: map-get($bootstrap-icons-map, "backspace-fill"); } +.bi-backspace-reverse-fill::before { content: map-get($bootstrap-icons-map, "backspace-reverse-fill"); } +.bi-backspace-reverse::before { content: map-get($bootstrap-icons-map, "backspace-reverse"); } +.bi-backspace::before { content: map-get($bootstrap-icons-map, "backspace"); } +.bi-badge-3d-fill::before { content: map-get($bootstrap-icons-map, "badge-3d-fill"); } +.bi-badge-3d::before { content: map-get($bootstrap-icons-map, "badge-3d"); } +.bi-badge-4k-fill::before { content: map-get($bootstrap-icons-map, "badge-4k-fill"); } +.bi-badge-4k::before { content: map-get($bootstrap-icons-map, "badge-4k"); } +.bi-badge-8k-fill::before { content: map-get($bootstrap-icons-map, "badge-8k-fill"); } +.bi-badge-8k::before { content: map-get($bootstrap-icons-map, "badge-8k"); } +.bi-badge-ad-fill::before { content: map-get($bootstrap-icons-map, "badge-ad-fill"); } +.bi-badge-ad::before { content: map-get($bootstrap-icons-map, "badge-ad"); } +.bi-badge-ar-fill::before { content: map-get($bootstrap-icons-map, "badge-ar-fill"); } +.bi-badge-ar::before { content: map-get($bootstrap-icons-map, "badge-ar"); } +.bi-badge-cc-fill::before { content: map-get($bootstrap-icons-map, "badge-cc-fill"); } +.bi-badge-cc::before { content: map-get($bootstrap-icons-map, "badge-cc"); } +.bi-badge-hd-fill::before { content: map-get($bootstrap-icons-map, "badge-hd-fill"); } +.bi-badge-hd::before { content: map-get($bootstrap-icons-map, "badge-hd"); } +.bi-badge-tm-fill::before { content: map-get($bootstrap-icons-map, "badge-tm-fill"); } +.bi-badge-tm::before { content: map-get($bootstrap-icons-map, "badge-tm"); } +.bi-badge-vo-fill::before { content: map-get($bootstrap-icons-map, "badge-vo-fill"); } +.bi-badge-vo::before { content: map-get($bootstrap-icons-map, "badge-vo"); } +.bi-badge-vr-fill::before { content: map-get($bootstrap-icons-map, "badge-vr-fill"); } +.bi-badge-vr::before { content: map-get($bootstrap-icons-map, "badge-vr"); } +.bi-badge-wc-fill::before { content: map-get($bootstrap-icons-map, "badge-wc-fill"); } +.bi-badge-wc::before { content: map-get($bootstrap-icons-map, "badge-wc"); } +.bi-bag-check-fill::before { content: map-get($bootstrap-icons-map, "bag-check-fill"); } +.bi-bag-check::before { content: map-get($bootstrap-icons-map, "bag-check"); } +.bi-bag-dash-fill::before { content: map-get($bootstrap-icons-map, "bag-dash-fill"); } +.bi-bag-dash::before { content: map-get($bootstrap-icons-map, "bag-dash"); } +.bi-bag-fill::before { content: map-get($bootstrap-icons-map, "bag-fill"); } +.bi-bag-plus-fill::before { content: map-get($bootstrap-icons-map, "bag-plus-fill"); } +.bi-bag-plus::before { content: map-get($bootstrap-icons-map, "bag-plus"); } +.bi-bag-x-fill::before { content: map-get($bootstrap-icons-map, "bag-x-fill"); } +.bi-bag-x::before { content: map-get($bootstrap-icons-map, "bag-x"); } +.bi-bag::before { content: map-get($bootstrap-icons-map, "bag"); } +.bi-bar-chart-fill::before { content: map-get($bootstrap-icons-map, "bar-chart-fill"); } +.bi-bar-chart-line-fill::before { content: map-get($bootstrap-icons-map, "bar-chart-line-fill"); } +.bi-bar-chart-line::before { content: map-get($bootstrap-icons-map, "bar-chart-line"); } +.bi-bar-chart-steps::before { content: map-get($bootstrap-icons-map, "bar-chart-steps"); } +.bi-bar-chart::before { content: map-get($bootstrap-icons-map, "bar-chart"); } +.bi-basket-fill::before { content: map-get($bootstrap-icons-map, "basket-fill"); } +.bi-basket::before { content: map-get($bootstrap-icons-map, "basket"); } +.bi-basket2-fill::before { content: map-get($bootstrap-icons-map, "basket2-fill"); } +.bi-basket2::before { content: map-get($bootstrap-icons-map, "basket2"); } +.bi-basket3-fill::before { content: map-get($bootstrap-icons-map, "basket3-fill"); } +.bi-basket3::before { content: map-get($bootstrap-icons-map, "basket3"); } +.bi-battery-charging::before { content: map-get($bootstrap-icons-map, "battery-charging"); } +.bi-battery-full::before { content: map-get($bootstrap-icons-map, "battery-full"); } +.bi-battery-half::before { content: map-get($bootstrap-icons-map, "battery-half"); } +.bi-battery::before { content: map-get($bootstrap-icons-map, "battery"); } +.bi-bell-fill::before { content: map-get($bootstrap-icons-map, "bell-fill"); } +.bi-bell::before { content: map-get($bootstrap-icons-map, "bell"); } +.bi-bezier::before { content: map-get($bootstrap-icons-map, "bezier"); } +.bi-bezier2::before { content: map-get($bootstrap-icons-map, "bezier2"); } +.bi-bicycle::before { content: map-get($bootstrap-icons-map, "bicycle"); } +.bi-binoculars-fill::before { content: map-get($bootstrap-icons-map, "binoculars-fill"); } +.bi-binoculars::before { content: map-get($bootstrap-icons-map, "binoculars"); } +.bi-blockquote-left::before { content: map-get($bootstrap-icons-map, "blockquote-left"); } +.bi-blockquote-right::before { content: map-get($bootstrap-icons-map, "blockquote-right"); } +.bi-book-fill::before { content: map-get($bootstrap-icons-map, "book-fill"); } +.bi-book-half::before { content: map-get($bootstrap-icons-map, "book-half"); } +.bi-book::before { content: map-get($bootstrap-icons-map, "book"); } +.bi-bookmark-check-fill::before { content: map-get($bootstrap-icons-map, "bookmark-check-fill"); } +.bi-bookmark-check::before { content: map-get($bootstrap-icons-map, "bookmark-check"); } +.bi-bookmark-dash-fill::before { content: map-get($bootstrap-icons-map, "bookmark-dash-fill"); } +.bi-bookmark-dash::before { content: map-get($bootstrap-icons-map, "bookmark-dash"); } +.bi-bookmark-fill::before { content: map-get($bootstrap-icons-map, "bookmark-fill"); } +.bi-bookmark-heart-fill::before { content: map-get($bootstrap-icons-map, "bookmark-heart-fill"); } +.bi-bookmark-heart::before { content: map-get($bootstrap-icons-map, "bookmark-heart"); } +.bi-bookmark-plus-fill::before { content: map-get($bootstrap-icons-map, "bookmark-plus-fill"); } +.bi-bookmark-plus::before { content: map-get($bootstrap-icons-map, "bookmark-plus"); } +.bi-bookmark-star-fill::before { content: map-get($bootstrap-icons-map, "bookmark-star-fill"); } +.bi-bookmark-star::before { content: map-get($bootstrap-icons-map, "bookmark-star"); } +.bi-bookmark-x-fill::before { content: map-get($bootstrap-icons-map, "bookmark-x-fill"); } +.bi-bookmark-x::before { content: map-get($bootstrap-icons-map, "bookmark-x"); } +.bi-bookmark::before { content: map-get($bootstrap-icons-map, "bookmark"); } +.bi-bookmarks-fill::before { content: map-get($bootstrap-icons-map, "bookmarks-fill"); } +.bi-bookmarks::before { content: map-get($bootstrap-icons-map, "bookmarks"); } +.bi-bookshelf::before { content: map-get($bootstrap-icons-map, "bookshelf"); } +.bi-bootstrap-fill::before { content: map-get($bootstrap-icons-map, "bootstrap-fill"); } +.bi-bootstrap-reboot::before { content: map-get($bootstrap-icons-map, "bootstrap-reboot"); } +.bi-bootstrap::before { content: map-get($bootstrap-icons-map, "bootstrap"); } +.bi-border-all::before { content: map-get($bootstrap-icons-map, "border-all"); } +.bi-border-bottom::before { content: map-get($bootstrap-icons-map, "border-bottom"); } +.bi-border-center::before { content: map-get($bootstrap-icons-map, "border-center"); } +.bi-border-inner::before { content: map-get($bootstrap-icons-map, "border-inner"); } +.bi-border-left::before { content: map-get($bootstrap-icons-map, "border-left"); } +.bi-border-middle::before { content: map-get($bootstrap-icons-map, "border-middle"); } +.bi-border-outer::before { content: map-get($bootstrap-icons-map, "border-outer"); } +.bi-border-right::before { content: map-get($bootstrap-icons-map, "border-right"); } +.bi-border-style::before { content: map-get($bootstrap-icons-map, "border-style"); } +.bi-border-top::before { content: map-get($bootstrap-icons-map, "border-top"); } +.bi-border-width::before { content: map-get($bootstrap-icons-map, "border-width"); } +.bi-border::before { content: map-get($bootstrap-icons-map, "border"); } +.bi-bounding-box-circles::before { content: map-get($bootstrap-icons-map, "bounding-box-circles"); } +.bi-bounding-box::before { content: map-get($bootstrap-icons-map, "bounding-box"); } +.bi-box-arrow-down-left::before { content: map-get($bootstrap-icons-map, "box-arrow-down-left"); } +.bi-box-arrow-down-right::before { content: map-get($bootstrap-icons-map, "box-arrow-down-right"); } +.bi-box-arrow-down::before { content: map-get($bootstrap-icons-map, "box-arrow-down"); } +.bi-box-arrow-in-down-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down-left"); } +.bi-box-arrow-in-down-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down-right"); } +.bi-box-arrow-in-down::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down"); } +.bi-box-arrow-in-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-left"); } +.bi-box-arrow-in-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-right"); } +.bi-box-arrow-in-up-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up-left"); } +.bi-box-arrow-in-up-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up-right"); } +.bi-box-arrow-in-up::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up"); } +.bi-box-arrow-left::before { content: map-get($bootstrap-icons-map, "box-arrow-left"); } +.bi-box-arrow-right::before { content: map-get($bootstrap-icons-map, "box-arrow-right"); } +.bi-box-arrow-up-left::before { content: map-get($bootstrap-icons-map, "box-arrow-up-left"); } +.bi-box-arrow-up-right::before { content: map-get($bootstrap-icons-map, "box-arrow-up-right"); } +.bi-box-arrow-up::before { content: map-get($bootstrap-icons-map, "box-arrow-up"); } +.bi-box-seam::before { content: map-get($bootstrap-icons-map, "box-seam"); } +.bi-box::before { content: map-get($bootstrap-icons-map, "box"); } +.bi-braces::before { content: map-get($bootstrap-icons-map, "braces"); } +.bi-bricks::before { content: map-get($bootstrap-icons-map, "bricks"); } +.bi-briefcase-fill::before { content: map-get($bootstrap-icons-map, "briefcase-fill"); } +.bi-briefcase::before { content: map-get($bootstrap-icons-map, "briefcase"); } +.bi-brightness-alt-high-fill::before { content: map-get($bootstrap-icons-map, "brightness-alt-high-fill"); } +.bi-brightness-alt-high::before { content: map-get($bootstrap-icons-map, "brightness-alt-high"); } +.bi-brightness-alt-low-fill::before { content: map-get($bootstrap-icons-map, "brightness-alt-low-fill"); } +.bi-brightness-alt-low::before { content: map-get($bootstrap-icons-map, "brightness-alt-low"); } +.bi-brightness-high-fill::before { content: map-get($bootstrap-icons-map, "brightness-high-fill"); } +.bi-brightness-high::before { content: map-get($bootstrap-icons-map, "brightness-high"); } +.bi-brightness-low-fill::before { content: map-get($bootstrap-icons-map, "brightness-low-fill"); } +.bi-brightness-low::before { content: map-get($bootstrap-icons-map, "brightness-low"); } +.bi-broadcast-pin::before { content: map-get($bootstrap-icons-map, "broadcast-pin"); } +.bi-broadcast::before { content: map-get($bootstrap-icons-map, "broadcast"); } +.bi-brush-fill::before { content: map-get($bootstrap-icons-map, "brush-fill"); } +.bi-brush::before { content: map-get($bootstrap-icons-map, "brush"); } +.bi-bucket-fill::before { content: map-get($bootstrap-icons-map, "bucket-fill"); } +.bi-bucket::before { content: map-get($bootstrap-icons-map, "bucket"); } +.bi-bug-fill::before { content: map-get($bootstrap-icons-map, "bug-fill"); } +.bi-bug::before { content: map-get($bootstrap-icons-map, "bug"); } +.bi-building::before { content: map-get($bootstrap-icons-map, "building"); } +.bi-bullseye::before { content: map-get($bootstrap-icons-map, "bullseye"); } +.bi-calculator-fill::before { content: map-get($bootstrap-icons-map, "calculator-fill"); } +.bi-calculator::before { content: map-get($bootstrap-icons-map, "calculator"); } +.bi-calendar-check-fill::before { content: map-get($bootstrap-icons-map, "calendar-check-fill"); } +.bi-calendar-check::before { content: map-get($bootstrap-icons-map, "calendar-check"); } +.bi-calendar-date-fill::before { content: map-get($bootstrap-icons-map, "calendar-date-fill"); } +.bi-calendar-date::before { content: map-get($bootstrap-icons-map, "calendar-date"); } +.bi-calendar-day-fill::before { content: map-get($bootstrap-icons-map, "calendar-day-fill"); } +.bi-calendar-day::before { content: map-get($bootstrap-icons-map, "calendar-day"); } +.bi-calendar-event-fill::before { content: map-get($bootstrap-icons-map, "calendar-event-fill"); } +.bi-calendar-event::before { content: map-get($bootstrap-icons-map, "calendar-event"); } +.bi-calendar-fill::before { content: map-get($bootstrap-icons-map, "calendar-fill"); } +.bi-calendar-minus-fill::before { content: map-get($bootstrap-icons-map, "calendar-minus-fill"); } +.bi-calendar-minus::before { content: map-get($bootstrap-icons-map, "calendar-minus"); } +.bi-calendar-month-fill::before { content: map-get($bootstrap-icons-map, "calendar-month-fill"); } +.bi-calendar-month::before { content: map-get($bootstrap-icons-map, "calendar-month"); } +.bi-calendar-plus-fill::before { content: map-get($bootstrap-icons-map, "calendar-plus-fill"); } +.bi-calendar-plus::before { content: map-get($bootstrap-icons-map, "calendar-plus"); } +.bi-calendar-range-fill::before { content: map-get($bootstrap-icons-map, "calendar-range-fill"); } +.bi-calendar-range::before { content: map-get($bootstrap-icons-map, "calendar-range"); } +.bi-calendar-week-fill::before { content: map-get($bootstrap-icons-map, "calendar-week-fill"); } +.bi-calendar-week::before { content: map-get($bootstrap-icons-map, "calendar-week"); } +.bi-calendar-x-fill::before { content: map-get($bootstrap-icons-map, "calendar-x-fill"); } +.bi-calendar-x::before { content: map-get($bootstrap-icons-map, "calendar-x"); } +.bi-calendar::before { content: map-get($bootstrap-icons-map, "calendar"); } +.bi-calendar2-check-fill::before { content: map-get($bootstrap-icons-map, "calendar2-check-fill"); } +.bi-calendar2-check::before { content: map-get($bootstrap-icons-map, "calendar2-check"); } +.bi-calendar2-date-fill::before { content: map-get($bootstrap-icons-map, "calendar2-date-fill"); } +.bi-calendar2-date::before { content: map-get($bootstrap-icons-map, "calendar2-date"); } +.bi-calendar2-day-fill::before { content: map-get($bootstrap-icons-map, "calendar2-day-fill"); } +.bi-calendar2-day::before { content: map-get($bootstrap-icons-map, "calendar2-day"); } +.bi-calendar2-event-fill::before { content: map-get($bootstrap-icons-map, "calendar2-event-fill"); } +.bi-calendar2-event::before { content: map-get($bootstrap-icons-map, "calendar2-event"); } +.bi-calendar2-fill::before { content: map-get($bootstrap-icons-map, "calendar2-fill"); } +.bi-calendar2-minus-fill::before { content: map-get($bootstrap-icons-map, "calendar2-minus-fill"); } +.bi-calendar2-minus::before { content: map-get($bootstrap-icons-map, "calendar2-minus"); } +.bi-calendar2-month-fill::before { content: map-get($bootstrap-icons-map, "calendar2-month-fill"); } +.bi-calendar2-month::before { content: map-get($bootstrap-icons-map, "calendar2-month"); } +.bi-calendar2-plus-fill::before { content: map-get($bootstrap-icons-map, "calendar2-plus-fill"); } +.bi-calendar2-plus::before { content: map-get($bootstrap-icons-map, "calendar2-plus"); } +.bi-calendar2-range-fill::before { content: map-get($bootstrap-icons-map, "calendar2-range-fill"); } +.bi-calendar2-range::before { content: map-get($bootstrap-icons-map, "calendar2-range"); } +.bi-calendar2-week-fill::before { content: map-get($bootstrap-icons-map, "calendar2-week-fill"); } +.bi-calendar2-week::before { content: map-get($bootstrap-icons-map, "calendar2-week"); } +.bi-calendar2-x-fill::before { content: map-get($bootstrap-icons-map, "calendar2-x-fill"); } +.bi-calendar2-x::before { content: map-get($bootstrap-icons-map, "calendar2-x"); } +.bi-calendar2::before { content: map-get($bootstrap-icons-map, "calendar2"); } +.bi-calendar3-event-fill::before { content: map-get($bootstrap-icons-map, "calendar3-event-fill"); } +.bi-calendar3-event::before { content: map-get($bootstrap-icons-map, "calendar3-event"); } +.bi-calendar3-fill::before { content: map-get($bootstrap-icons-map, "calendar3-fill"); } +.bi-calendar3-range-fill::before { content: map-get($bootstrap-icons-map, "calendar3-range-fill"); } +.bi-calendar3-range::before { content: map-get($bootstrap-icons-map, "calendar3-range"); } +.bi-calendar3-week-fill::before { content: map-get($bootstrap-icons-map, "calendar3-week-fill"); } +.bi-calendar3-week::before { content: map-get($bootstrap-icons-map, "calendar3-week"); } +.bi-calendar3::before { content: map-get($bootstrap-icons-map, "calendar3"); } +.bi-calendar4-event::before { content: map-get($bootstrap-icons-map, "calendar4-event"); } +.bi-calendar4-range::before { content: map-get($bootstrap-icons-map, "calendar4-range"); } +.bi-calendar4-week::before { content: map-get($bootstrap-icons-map, "calendar4-week"); } +.bi-calendar4::before { content: map-get($bootstrap-icons-map, "calendar4"); } +.bi-camera-fill::before { content: map-get($bootstrap-icons-map, "camera-fill"); } +.bi-camera-reels-fill::before { content: map-get($bootstrap-icons-map, "camera-reels-fill"); } +.bi-camera-reels::before { content: map-get($bootstrap-icons-map, "camera-reels"); } +.bi-camera-video-fill::before { content: map-get($bootstrap-icons-map, "camera-video-fill"); } +.bi-camera-video-off-fill::before { content: map-get($bootstrap-icons-map, "camera-video-off-fill"); } +.bi-camera-video-off::before { content: map-get($bootstrap-icons-map, "camera-video-off"); } +.bi-camera-video::before { content: map-get($bootstrap-icons-map, "camera-video"); } +.bi-camera::before { content: map-get($bootstrap-icons-map, "camera"); } +.bi-camera2::before { content: map-get($bootstrap-icons-map, "camera2"); } +.bi-capslock-fill::before { content: map-get($bootstrap-icons-map, "capslock-fill"); } +.bi-capslock::before { content: map-get($bootstrap-icons-map, "capslock"); } +.bi-card-checklist::before { content: map-get($bootstrap-icons-map, "card-checklist"); } +.bi-card-heading::before { content: map-get($bootstrap-icons-map, "card-heading"); } +.bi-card-image::before { content: map-get($bootstrap-icons-map, "card-image"); } +.bi-card-list::before { content: map-get($bootstrap-icons-map, "card-list"); } +.bi-card-text::before { content: map-get($bootstrap-icons-map, "card-text"); } +.bi-caret-down-fill::before { content: map-get($bootstrap-icons-map, "caret-down-fill"); } +.bi-caret-down-square-fill::before { content: map-get($bootstrap-icons-map, "caret-down-square-fill"); } +.bi-caret-down-square::before { content: map-get($bootstrap-icons-map, "caret-down-square"); } +.bi-caret-down::before { content: map-get($bootstrap-icons-map, "caret-down"); } +.bi-caret-left-fill::before { content: map-get($bootstrap-icons-map, "caret-left-fill"); } +.bi-caret-left-square-fill::before { content: map-get($bootstrap-icons-map, "caret-left-square-fill"); } +.bi-caret-left-square::before { content: map-get($bootstrap-icons-map, "caret-left-square"); } +.bi-caret-left::before { content: map-get($bootstrap-icons-map, "caret-left"); } +.bi-caret-right-fill::before { content: map-get($bootstrap-icons-map, "caret-right-fill"); } +.bi-caret-right-square-fill::before { content: map-get($bootstrap-icons-map, "caret-right-square-fill"); } +.bi-caret-right-square::before { content: map-get($bootstrap-icons-map, "caret-right-square"); } +.bi-caret-right::before { content: map-get($bootstrap-icons-map, "caret-right"); } +.bi-caret-up-fill::before { content: map-get($bootstrap-icons-map, "caret-up-fill"); } +.bi-caret-up-square-fill::before { content: map-get($bootstrap-icons-map, "caret-up-square-fill"); } +.bi-caret-up-square::before { content: map-get($bootstrap-icons-map, "caret-up-square"); } +.bi-caret-up::before { content: map-get($bootstrap-icons-map, "caret-up"); } +.bi-cart-check-fill::before { content: map-get($bootstrap-icons-map, "cart-check-fill"); } +.bi-cart-check::before { content: map-get($bootstrap-icons-map, "cart-check"); } +.bi-cart-dash-fill::before { content: map-get($bootstrap-icons-map, "cart-dash-fill"); } +.bi-cart-dash::before { content: map-get($bootstrap-icons-map, "cart-dash"); } +.bi-cart-fill::before { content: map-get($bootstrap-icons-map, "cart-fill"); } +.bi-cart-plus-fill::before { content: map-get($bootstrap-icons-map, "cart-plus-fill"); } +.bi-cart-plus::before { content: map-get($bootstrap-icons-map, "cart-plus"); } +.bi-cart-x-fill::before { content: map-get($bootstrap-icons-map, "cart-x-fill"); } +.bi-cart-x::before { content: map-get($bootstrap-icons-map, "cart-x"); } +.bi-cart::before { content: map-get($bootstrap-icons-map, "cart"); } +.bi-cart2::before { content: map-get($bootstrap-icons-map, "cart2"); } +.bi-cart3::before { content: map-get($bootstrap-icons-map, "cart3"); } +.bi-cart4::before { content: map-get($bootstrap-icons-map, "cart4"); } +.bi-cash-stack::before { content: map-get($bootstrap-icons-map, "cash-stack"); } +.bi-cash::before { content: map-get($bootstrap-icons-map, "cash"); } +.bi-cast::before { content: map-get($bootstrap-icons-map, "cast"); } +.bi-chat-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-dots-fill"); } +.bi-chat-dots::before { content: map-get($bootstrap-icons-map, "chat-dots"); } +.bi-chat-fill::before { content: map-get($bootstrap-icons-map, "chat-fill"); } +.bi-chat-left-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-left-dots-fill"); } +.bi-chat-left-dots::before { content: map-get($bootstrap-icons-map, "chat-left-dots"); } +.bi-chat-left-fill::before { content: map-get($bootstrap-icons-map, "chat-left-fill"); } +.bi-chat-left-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-left-quote-fill"); } +.bi-chat-left-quote::before { content: map-get($bootstrap-icons-map, "chat-left-quote"); } +.bi-chat-left-text-fill::before { content: map-get($bootstrap-icons-map, "chat-left-text-fill"); } +.bi-chat-left-text::before { content: map-get($bootstrap-icons-map, "chat-left-text"); } +.bi-chat-left::before { content: map-get($bootstrap-icons-map, "chat-left"); } +.bi-chat-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-quote-fill"); } +.bi-chat-quote::before { content: map-get($bootstrap-icons-map, "chat-quote"); } +.bi-chat-right-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-right-dots-fill"); } +.bi-chat-right-dots::before { content: map-get($bootstrap-icons-map, "chat-right-dots"); } +.bi-chat-right-fill::before { content: map-get($bootstrap-icons-map, "chat-right-fill"); } +.bi-chat-right-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-right-quote-fill"); } +.bi-chat-right-quote::before { content: map-get($bootstrap-icons-map, "chat-right-quote"); } +.bi-chat-right-text-fill::before { content: map-get($bootstrap-icons-map, "chat-right-text-fill"); } +.bi-chat-right-text::before { content: map-get($bootstrap-icons-map, "chat-right-text"); } +.bi-chat-right::before { content: map-get($bootstrap-icons-map, "chat-right"); } +.bi-chat-square-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-square-dots-fill"); } +.bi-chat-square-dots::before { content: map-get($bootstrap-icons-map, "chat-square-dots"); } +.bi-chat-square-fill::before { content: map-get($bootstrap-icons-map, "chat-square-fill"); } +.bi-chat-square-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-square-quote-fill"); } +.bi-chat-square-quote::before { content: map-get($bootstrap-icons-map, "chat-square-quote"); } +.bi-chat-square-text-fill::before { content: map-get($bootstrap-icons-map, "chat-square-text-fill"); } +.bi-chat-square-text::before { content: map-get($bootstrap-icons-map, "chat-square-text"); } +.bi-chat-square::before { content: map-get($bootstrap-icons-map, "chat-square"); } +.bi-chat-text-fill::before { content: map-get($bootstrap-icons-map, "chat-text-fill"); } +.bi-chat-text::before { content: map-get($bootstrap-icons-map, "chat-text"); } +.bi-chat::before { content: map-get($bootstrap-icons-map, "chat"); } +.bi-check-all::before { content: map-get($bootstrap-icons-map, "check-all"); } +.bi-check-circle-fill::before { content: map-get($bootstrap-icons-map, "check-circle-fill"); } +.bi-check-circle::before { content: map-get($bootstrap-icons-map, "check-circle"); } +.bi-check-square-fill::before { content: map-get($bootstrap-icons-map, "check-square-fill"); } +.bi-check-square::before { content: map-get($bootstrap-icons-map, "check-square"); } +.bi-check::before { content: map-get($bootstrap-icons-map, "check"); } +.bi-check2-all::before { content: map-get($bootstrap-icons-map, "check2-all"); } +.bi-check2-circle::before { content: map-get($bootstrap-icons-map, "check2-circle"); } +.bi-check2-square::before { content: map-get($bootstrap-icons-map, "check2-square"); } +.bi-check2::before { content: map-get($bootstrap-icons-map, "check2"); } +.bi-chevron-bar-contract::before { content: map-get($bootstrap-icons-map, "chevron-bar-contract"); } +.bi-chevron-bar-down::before { content: map-get($bootstrap-icons-map, "chevron-bar-down"); } +.bi-chevron-bar-expand::before { content: map-get($bootstrap-icons-map, "chevron-bar-expand"); } +.bi-chevron-bar-left::before { content: map-get($bootstrap-icons-map, "chevron-bar-left"); } +.bi-chevron-bar-right::before { content: map-get($bootstrap-icons-map, "chevron-bar-right"); } +.bi-chevron-bar-up::before { content: map-get($bootstrap-icons-map, "chevron-bar-up"); } +.bi-chevron-compact-down::before { content: map-get($bootstrap-icons-map, "chevron-compact-down"); } +.bi-chevron-compact-left::before { content: map-get($bootstrap-icons-map, "chevron-compact-left"); } +.bi-chevron-compact-right::before { content: map-get($bootstrap-icons-map, "chevron-compact-right"); } +.bi-chevron-compact-up::before { content: map-get($bootstrap-icons-map, "chevron-compact-up"); } +.bi-chevron-contract::before { content: map-get($bootstrap-icons-map, "chevron-contract"); } +.bi-chevron-double-down::before { content: map-get($bootstrap-icons-map, "chevron-double-down"); } +.bi-chevron-double-left::before { content: map-get($bootstrap-icons-map, "chevron-double-left"); } +.bi-chevron-double-right::before { content: map-get($bootstrap-icons-map, "chevron-double-right"); } +.bi-chevron-double-up::before { content: map-get($bootstrap-icons-map, "chevron-double-up"); } +.bi-chevron-down::before { content: map-get($bootstrap-icons-map, "chevron-down"); } +.bi-chevron-expand::before { content: map-get($bootstrap-icons-map, "chevron-expand"); } +.bi-chevron-left::before { content: map-get($bootstrap-icons-map, "chevron-left"); } +.bi-chevron-right::before { content: map-get($bootstrap-icons-map, "chevron-right"); } +.bi-chevron-up::before { content: map-get($bootstrap-icons-map, "chevron-up"); } +.bi-circle-fill::before { content: map-get($bootstrap-icons-map, "circle-fill"); } +.bi-circle-half::before { content: map-get($bootstrap-icons-map, "circle-half"); } +.bi-circle-square::before { content: map-get($bootstrap-icons-map, "circle-square"); } +.bi-circle::before { content: map-get($bootstrap-icons-map, "circle"); } +.bi-clipboard-check::before { content: map-get($bootstrap-icons-map, "clipboard-check"); } +.bi-clipboard-data::before { content: map-get($bootstrap-icons-map, "clipboard-data"); } +.bi-clipboard-minus::before { content: map-get($bootstrap-icons-map, "clipboard-minus"); } +.bi-clipboard-plus::before { content: map-get($bootstrap-icons-map, "clipboard-plus"); } +.bi-clipboard-x::before { content: map-get($bootstrap-icons-map, "clipboard-x"); } +.bi-clipboard::before { content: map-get($bootstrap-icons-map, "clipboard"); } +.bi-clock-fill::before { content: map-get($bootstrap-icons-map, "clock-fill"); } +.bi-clock-history::before { content: map-get($bootstrap-icons-map, "clock-history"); } +.bi-clock::before { content: map-get($bootstrap-icons-map, "clock"); } +.bi-cloud-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "cloud-arrow-down-fill"); } +.bi-cloud-arrow-down::before { content: map-get($bootstrap-icons-map, "cloud-arrow-down"); } +.bi-cloud-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "cloud-arrow-up-fill"); } +.bi-cloud-arrow-up::before { content: map-get($bootstrap-icons-map, "cloud-arrow-up"); } +.bi-cloud-check-fill::before { content: map-get($bootstrap-icons-map, "cloud-check-fill"); } +.bi-cloud-check::before { content: map-get($bootstrap-icons-map, "cloud-check"); } +.bi-cloud-download-fill::before { content: map-get($bootstrap-icons-map, "cloud-download-fill"); } +.bi-cloud-download::before { content: map-get($bootstrap-icons-map, "cloud-download"); } +.bi-cloud-drizzle-fill::before { content: map-get($bootstrap-icons-map, "cloud-drizzle-fill"); } +.bi-cloud-drizzle::before { content: map-get($bootstrap-icons-map, "cloud-drizzle"); } +.bi-cloud-fill::before { content: map-get($bootstrap-icons-map, "cloud-fill"); } +.bi-cloud-fog-fill::before { content: map-get($bootstrap-icons-map, "cloud-fog-fill"); } +.bi-cloud-fog::before { content: map-get($bootstrap-icons-map, "cloud-fog"); } +.bi-cloud-fog2-fill::before { content: map-get($bootstrap-icons-map, "cloud-fog2-fill"); } +.bi-cloud-fog2::before { content: map-get($bootstrap-icons-map, "cloud-fog2"); } +.bi-cloud-hail-fill::before { content: map-get($bootstrap-icons-map, "cloud-hail-fill"); } +.bi-cloud-hail::before { content: map-get($bootstrap-icons-map, "cloud-hail"); } +.bi-cloud-haze-1::before { content: map-get($bootstrap-icons-map, "cloud-haze-1"); } +.bi-cloud-haze-fill::before { content: map-get($bootstrap-icons-map, "cloud-haze-fill"); } +.bi-cloud-haze::before { content: map-get($bootstrap-icons-map, "cloud-haze"); } +.bi-cloud-haze2-fill::before { content: map-get($bootstrap-icons-map, "cloud-haze2-fill"); } +.bi-cloud-lightning-fill::before { content: map-get($bootstrap-icons-map, "cloud-lightning-fill"); } +.bi-cloud-lightning-rain-fill::before { content: map-get($bootstrap-icons-map, "cloud-lightning-rain-fill"); } +.bi-cloud-lightning-rain::before { content: map-get($bootstrap-icons-map, "cloud-lightning-rain"); } +.bi-cloud-lightning::before { content: map-get($bootstrap-icons-map, "cloud-lightning"); } +.bi-cloud-minus-fill::before { content: map-get($bootstrap-icons-map, "cloud-minus-fill"); } +.bi-cloud-minus::before { content: map-get($bootstrap-icons-map, "cloud-minus"); } +.bi-cloud-moon-fill::before { content: map-get($bootstrap-icons-map, "cloud-moon-fill"); } +.bi-cloud-moon::before { content: map-get($bootstrap-icons-map, "cloud-moon"); } +.bi-cloud-plus-fill::before { content: map-get($bootstrap-icons-map, "cloud-plus-fill"); } +.bi-cloud-plus::before { content: map-get($bootstrap-icons-map, "cloud-plus"); } +.bi-cloud-rain-fill::before { content: map-get($bootstrap-icons-map, "cloud-rain-fill"); } +.bi-cloud-rain-heavy-fill::before { content: map-get($bootstrap-icons-map, "cloud-rain-heavy-fill"); } +.bi-cloud-rain-heavy::before { content: map-get($bootstrap-icons-map, "cloud-rain-heavy"); } +.bi-cloud-rain::before { content: map-get($bootstrap-icons-map, "cloud-rain"); } +.bi-cloud-slash-fill::before { content: map-get($bootstrap-icons-map, "cloud-slash-fill"); } +.bi-cloud-slash::before { content: map-get($bootstrap-icons-map, "cloud-slash"); } +.bi-cloud-sleet-fill::before { content: map-get($bootstrap-icons-map, "cloud-sleet-fill"); } +.bi-cloud-sleet::before { content: map-get($bootstrap-icons-map, "cloud-sleet"); } +.bi-cloud-snow-fill::before { content: map-get($bootstrap-icons-map, "cloud-snow-fill"); } +.bi-cloud-snow::before { content: map-get($bootstrap-icons-map, "cloud-snow"); } +.bi-cloud-sun-fill::before { content: map-get($bootstrap-icons-map, "cloud-sun-fill"); } +.bi-cloud-sun::before { content: map-get($bootstrap-icons-map, "cloud-sun"); } +.bi-cloud-upload-fill::before { content: map-get($bootstrap-icons-map, "cloud-upload-fill"); } +.bi-cloud-upload::before { content: map-get($bootstrap-icons-map, "cloud-upload"); } +.bi-cloud::before { content: map-get($bootstrap-icons-map, "cloud"); } +.bi-clouds-fill::before { content: map-get($bootstrap-icons-map, "clouds-fill"); } +.bi-clouds::before { content: map-get($bootstrap-icons-map, "clouds"); } +.bi-cloudy-fill::before { content: map-get($bootstrap-icons-map, "cloudy-fill"); } +.bi-cloudy::before { content: map-get($bootstrap-icons-map, "cloudy"); } +.bi-code-slash::before { content: map-get($bootstrap-icons-map, "code-slash"); } +.bi-code-square::before { content: map-get($bootstrap-icons-map, "code-square"); } +.bi-code::before { content: map-get($bootstrap-icons-map, "code"); } +.bi-collection-fill::before { content: map-get($bootstrap-icons-map, "collection-fill"); } +.bi-collection-play-fill::before { content: map-get($bootstrap-icons-map, "collection-play-fill"); } +.bi-collection-play::before { content: map-get($bootstrap-icons-map, "collection-play"); } +.bi-collection::before { content: map-get($bootstrap-icons-map, "collection"); } +.bi-columns-gap::before { content: map-get($bootstrap-icons-map, "columns-gap"); } +.bi-columns::before { content: map-get($bootstrap-icons-map, "columns"); } +.bi-command::before { content: map-get($bootstrap-icons-map, "command"); } +.bi-compass-fill::before { content: map-get($bootstrap-icons-map, "compass-fill"); } +.bi-compass::before { content: map-get($bootstrap-icons-map, "compass"); } +.bi-cone-striped::before { content: map-get($bootstrap-icons-map, "cone-striped"); } +.bi-cone::before { content: map-get($bootstrap-icons-map, "cone"); } +.bi-controller::before { content: map-get($bootstrap-icons-map, "controller"); } +.bi-cpu-fill::before { content: map-get($bootstrap-icons-map, "cpu-fill"); } +.bi-cpu::before { content: map-get($bootstrap-icons-map, "cpu"); } +.bi-credit-card-2-back-fill::before { content: map-get($bootstrap-icons-map, "credit-card-2-back-fill"); } +.bi-credit-card-2-back::before { content: map-get($bootstrap-icons-map, "credit-card-2-back"); } +.bi-credit-card-2-front-fill::before { content: map-get($bootstrap-icons-map, "credit-card-2-front-fill"); } +.bi-credit-card-2-front::before { content: map-get($bootstrap-icons-map, "credit-card-2-front"); } +.bi-credit-card-fill::before { content: map-get($bootstrap-icons-map, "credit-card-fill"); } +.bi-credit-card::before { content: map-get($bootstrap-icons-map, "credit-card"); } +.bi-crop::before { content: map-get($bootstrap-icons-map, "crop"); } +.bi-cup-fill::before { content: map-get($bootstrap-icons-map, "cup-fill"); } +.bi-cup-straw::before { content: map-get($bootstrap-icons-map, "cup-straw"); } +.bi-cup::before { content: map-get($bootstrap-icons-map, "cup"); } +.bi-cursor-fill::before { content: map-get($bootstrap-icons-map, "cursor-fill"); } +.bi-cursor-text::before { content: map-get($bootstrap-icons-map, "cursor-text"); } +.bi-cursor::before { content: map-get($bootstrap-icons-map, "cursor"); } +.bi-dash-circle-dotted::before { content: map-get($bootstrap-icons-map, "dash-circle-dotted"); } +.bi-dash-circle-fill::before { content: map-get($bootstrap-icons-map, "dash-circle-fill"); } +.bi-dash-circle::before { content: map-get($bootstrap-icons-map, "dash-circle"); } +.bi-dash-square-dotted::before { content: map-get($bootstrap-icons-map, "dash-square-dotted"); } +.bi-dash-square-fill::before { content: map-get($bootstrap-icons-map, "dash-square-fill"); } +.bi-dash-square::before { content: map-get($bootstrap-icons-map, "dash-square"); } +.bi-dash::before { content: map-get($bootstrap-icons-map, "dash"); } +.bi-diagram-2-fill::before { content: map-get($bootstrap-icons-map, "diagram-2-fill"); } +.bi-diagram-2::before { content: map-get($bootstrap-icons-map, "diagram-2"); } +.bi-diagram-3-fill::before { content: map-get($bootstrap-icons-map, "diagram-3-fill"); } +.bi-diagram-3::before { content: map-get($bootstrap-icons-map, "diagram-3"); } +.bi-diamond-fill::before { content: map-get($bootstrap-icons-map, "diamond-fill"); } +.bi-diamond-half::before { content: map-get($bootstrap-icons-map, "diamond-half"); } +.bi-diamond::before { content: map-get($bootstrap-icons-map, "diamond"); } +.bi-dice-1-fill::before { content: map-get($bootstrap-icons-map, "dice-1-fill"); } +.bi-dice-1::before { content: map-get($bootstrap-icons-map, "dice-1"); } +.bi-dice-2-fill::before { content: map-get($bootstrap-icons-map, "dice-2-fill"); } +.bi-dice-2::before { content: map-get($bootstrap-icons-map, "dice-2"); } +.bi-dice-3-fill::before { content: map-get($bootstrap-icons-map, "dice-3-fill"); } +.bi-dice-3::before { content: map-get($bootstrap-icons-map, "dice-3"); } +.bi-dice-4-fill::before { content: map-get($bootstrap-icons-map, "dice-4-fill"); } +.bi-dice-4::before { content: map-get($bootstrap-icons-map, "dice-4"); } +.bi-dice-5-fill::before { content: map-get($bootstrap-icons-map, "dice-5-fill"); } +.bi-dice-5::before { content: map-get($bootstrap-icons-map, "dice-5"); } +.bi-dice-6-fill::before { content: map-get($bootstrap-icons-map, "dice-6-fill"); } +.bi-dice-6::before { content: map-get($bootstrap-icons-map, "dice-6"); } +.bi-disc-fill::before { content: map-get($bootstrap-icons-map, "disc-fill"); } +.bi-disc::before { content: map-get($bootstrap-icons-map, "disc"); } +.bi-discord::before { content: map-get($bootstrap-icons-map, "discord"); } +.bi-display-fill::before { content: map-get($bootstrap-icons-map, "display-fill"); } +.bi-display::before { content: map-get($bootstrap-icons-map, "display"); } +.bi-distribute-horizontal::before { content: map-get($bootstrap-icons-map, "distribute-horizontal"); } +.bi-distribute-vertical::before { content: map-get($bootstrap-icons-map, "distribute-vertical"); } +.bi-door-closed-fill::before { content: map-get($bootstrap-icons-map, "door-closed-fill"); } +.bi-door-closed::before { content: map-get($bootstrap-icons-map, "door-closed"); } +.bi-door-open-fill::before { content: map-get($bootstrap-icons-map, "door-open-fill"); } +.bi-door-open::before { content: map-get($bootstrap-icons-map, "door-open"); } +.bi-dot::before { content: map-get($bootstrap-icons-map, "dot"); } +.bi-download::before { content: map-get($bootstrap-icons-map, "download"); } +.bi-droplet-fill::before { content: map-get($bootstrap-icons-map, "droplet-fill"); } +.bi-droplet-half::before { content: map-get($bootstrap-icons-map, "droplet-half"); } +.bi-droplet::before { content: map-get($bootstrap-icons-map, "droplet"); } +.bi-earbuds::before { content: map-get($bootstrap-icons-map, "earbuds"); } +.bi-easel-fill::before { content: map-get($bootstrap-icons-map, "easel-fill"); } +.bi-easel::before { content: map-get($bootstrap-icons-map, "easel"); } +.bi-egg-fill::before { content: map-get($bootstrap-icons-map, "egg-fill"); } +.bi-egg-fried::before { content: map-get($bootstrap-icons-map, "egg-fried"); } +.bi-egg::before { content: map-get($bootstrap-icons-map, "egg"); } +.bi-eject-fill::before { content: map-get($bootstrap-icons-map, "eject-fill"); } +.bi-eject::before { content: map-get($bootstrap-icons-map, "eject"); } +.bi-emoji-angry-fill::before { content: map-get($bootstrap-icons-map, "emoji-angry-fill"); } +.bi-emoji-angry::before { content: map-get($bootstrap-icons-map, "emoji-angry"); } +.bi-emoji-dizzy-fill::before { content: map-get($bootstrap-icons-map, "emoji-dizzy-fill"); } +.bi-emoji-dizzy::before { content: map-get($bootstrap-icons-map, "emoji-dizzy"); } +.bi-emoji-expressionless-fill::before { content: map-get($bootstrap-icons-map, "emoji-expressionless-fill"); } +.bi-emoji-expressionless::before { content: map-get($bootstrap-icons-map, "emoji-expressionless"); } +.bi-emoji-frown-fill::before { content: map-get($bootstrap-icons-map, "emoji-frown-fill"); } +.bi-emoji-frown::before { content: map-get($bootstrap-icons-map, "emoji-frown"); } +.bi-emoji-heart-eyes-fill::before { content: map-get($bootstrap-icons-map, "emoji-heart-eyes-fill"); } +.bi-emoji-heart-eyes::before { content: map-get($bootstrap-icons-map, "emoji-heart-eyes"); } +.bi-emoji-laughing-fill::before { content: map-get($bootstrap-icons-map, "emoji-laughing-fill"); } +.bi-emoji-laughing::before { content: map-get($bootstrap-icons-map, "emoji-laughing"); } +.bi-emoji-neutral-fill::before { content: map-get($bootstrap-icons-map, "emoji-neutral-fill"); } +.bi-emoji-neutral::before { content: map-get($bootstrap-icons-map, "emoji-neutral"); } +.bi-emoji-smile-fill::before { content: map-get($bootstrap-icons-map, "emoji-smile-fill"); } +.bi-emoji-smile-upside-down-fill::before { content: map-get($bootstrap-icons-map, "emoji-smile-upside-down-fill"); } +.bi-emoji-smile-upside-down::before { content: map-get($bootstrap-icons-map, "emoji-smile-upside-down"); } +.bi-emoji-smile::before { content: map-get($bootstrap-icons-map, "emoji-smile"); } +.bi-emoji-sunglasses-fill::before { content: map-get($bootstrap-icons-map, "emoji-sunglasses-fill"); } +.bi-emoji-sunglasses::before { content: map-get($bootstrap-icons-map, "emoji-sunglasses"); } +.bi-emoji-wink-fill::before { content: map-get($bootstrap-icons-map, "emoji-wink-fill"); } +.bi-emoji-wink::before { content: map-get($bootstrap-icons-map, "emoji-wink"); } +.bi-envelope-fill::before { content: map-get($bootstrap-icons-map, "envelope-fill"); } +.bi-envelope-open-fill::before { content: map-get($bootstrap-icons-map, "envelope-open-fill"); } +.bi-envelope-open::before { content: map-get($bootstrap-icons-map, "envelope-open"); } +.bi-envelope::before { content: map-get($bootstrap-icons-map, "envelope"); } +.bi-eraser-fill::before { content: map-get($bootstrap-icons-map, "eraser-fill"); } +.bi-eraser::before { content: map-get($bootstrap-icons-map, "eraser"); } +.bi-exclamation-circle-fill::before { content: map-get($bootstrap-icons-map, "exclamation-circle-fill"); } +.bi-exclamation-circle::before { content: map-get($bootstrap-icons-map, "exclamation-circle"); } +.bi-exclamation-diamond-fill::before { content: map-get($bootstrap-icons-map, "exclamation-diamond-fill"); } +.bi-exclamation-diamond::before { content: map-get($bootstrap-icons-map, "exclamation-diamond"); } +.bi-exclamation-octagon-fill::before { content: map-get($bootstrap-icons-map, "exclamation-octagon-fill"); } +.bi-exclamation-octagon::before { content: map-get($bootstrap-icons-map, "exclamation-octagon"); } +.bi-exclamation-square-fill::before { content: map-get($bootstrap-icons-map, "exclamation-square-fill"); } +.bi-exclamation-square::before { content: map-get($bootstrap-icons-map, "exclamation-square"); } +.bi-exclamation-triangle-fill::before { content: map-get($bootstrap-icons-map, "exclamation-triangle-fill"); } +.bi-exclamation-triangle::before { content: map-get($bootstrap-icons-map, "exclamation-triangle"); } +.bi-exclamation::before { content: map-get($bootstrap-icons-map, "exclamation"); } +.bi-exclude::before { content: map-get($bootstrap-icons-map, "exclude"); } +.bi-eye-fill::before { content: map-get($bootstrap-icons-map, "eye-fill"); } +.bi-eye-slash-fill::before { content: map-get($bootstrap-icons-map, "eye-slash-fill"); } +.bi-eye-slash::before { content: map-get($bootstrap-icons-map, "eye-slash"); } +.bi-eye::before { content: map-get($bootstrap-icons-map, "eye"); } +.bi-eyedropper::before { content: map-get($bootstrap-icons-map, "eyedropper"); } +.bi-eyeglasses::before { content: map-get($bootstrap-icons-map, "eyeglasses"); } +.bi-facebook::before { content: map-get($bootstrap-icons-map, "facebook"); } +.bi-file-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "file-arrow-down-fill"); } +.bi-file-arrow-down::before { content: map-get($bootstrap-icons-map, "file-arrow-down"); } +.bi-file-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "file-arrow-up-fill"); } +.bi-file-arrow-up::before { content: map-get($bootstrap-icons-map, "file-arrow-up"); } +.bi-file-bar-graph-fill::before { content: map-get($bootstrap-icons-map, "file-bar-graph-fill"); } +.bi-file-bar-graph::before { content: map-get($bootstrap-icons-map, "file-bar-graph"); } +.bi-file-binary-fill::before { content: map-get($bootstrap-icons-map, "file-binary-fill"); } +.bi-file-binary::before { content: map-get($bootstrap-icons-map, "file-binary"); } +.bi-file-break-fill::before { content: map-get($bootstrap-icons-map, "file-break-fill"); } +.bi-file-break::before { content: map-get($bootstrap-icons-map, "file-break"); } +.bi-file-check-fill::before { content: map-get($bootstrap-icons-map, "file-check-fill"); } +.bi-file-check::before { content: map-get($bootstrap-icons-map, "file-check"); } +.bi-file-code-fill::before { content: map-get($bootstrap-icons-map, "file-code-fill"); } +.bi-file-code::before { content: map-get($bootstrap-icons-map, "file-code"); } +.bi-file-diff-fill::before { content: map-get($bootstrap-icons-map, "file-diff-fill"); } +.bi-file-diff::before { content: map-get($bootstrap-icons-map, "file-diff"); } +.bi-file-earmark-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-down-fill"); } +.bi-file-earmark-arrow-down::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-down"); } +.bi-file-earmark-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-up-fill"); } +.bi-file-earmark-arrow-up::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-up"); } +.bi-file-earmark-bar-graph-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-bar-graph-fill"); } +.bi-file-earmark-bar-graph::before { content: map-get($bootstrap-icons-map, "file-earmark-bar-graph"); } +.bi-file-earmark-binary-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-binary-fill"); } +.bi-file-earmark-binary::before { content: map-get($bootstrap-icons-map, "file-earmark-binary"); } +.bi-file-earmark-break-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-break-fill"); } +.bi-file-earmark-break::before { content: map-get($bootstrap-icons-map, "file-earmark-break"); } +.bi-file-earmark-check-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-check-fill"); } +.bi-file-earmark-check::before { content: map-get($bootstrap-icons-map, "file-earmark-check"); } +.bi-file-earmark-code-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-code-fill"); } +.bi-file-earmark-code::before { content: map-get($bootstrap-icons-map, "file-earmark-code"); } +.bi-file-earmark-diff-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-diff-fill"); } +.bi-file-earmark-diff::before { content: map-get($bootstrap-icons-map, "file-earmark-diff"); } +.bi-file-earmark-easel-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-easel-fill"); } +.bi-file-earmark-easel::before { content: map-get($bootstrap-icons-map, "file-earmark-easel"); } +.bi-file-earmark-excel-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-excel-fill"); } +.bi-file-earmark-excel::before { content: map-get($bootstrap-icons-map, "file-earmark-excel"); } +.bi-file-earmark-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-fill"); } +.bi-file-earmark-font-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-font-fill"); } +.bi-file-earmark-font::before { content: map-get($bootstrap-icons-map, "file-earmark-font"); } +.bi-file-earmark-image-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-image-fill"); } +.bi-file-earmark-image::before { content: map-get($bootstrap-icons-map, "file-earmark-image"); } +.bi-file-earmark-lock-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-lock-fill"); } +.bi-file-earmark-lock::before { content: map-get($bootstrap-icons-map, "file-earmark-lock"); } +.bi-file-earmark-lock2-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-lock2-fill"); } +.bi-file-earmark-lock2::before { content: map-get($bootstrap-icons-map, "file-earmark-lock2"); } +.bi-file-earmark-medical-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-medical-fill"); } +.bi-file-earmark-medical::before { content: map-get($bootstrap-icons-map, "file-earmark-medical"); } +.bi-file-earmark-minus-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-minus-fill"); } +.bi-file-earmark-minus::before { content: map-get($bootstrap-icons-map, "file-earmark-minus"); } +.bi-file-earmark-music-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-music-fill"); } +.bi-file-earmark-music::before { content: map-get($bootstrap-icons-map, "file-earmark-music"); } +.bi-file-earmark-person-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-person-fill"); } +.bi-file-earmark-person::before { content: map-get($bootstrap-icons-map, "file-earmark-person"); } +.bi-file-earmark-play-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-play-fill"); } +.bi-file-earmark-play::before { content: map-get($bootstrap-icons-map, "file-earmark-play"); } +.bi-file-earmark-plus-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-plus-fill"); } +.bi-file-earmark-plus::before { content: map-get($bootstrap-icons-map, "file-earmark-plus"); } +.bi-file-earmark-post-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-post-fill"); } +.bi-file-earmark-post::before { content: map-get($bootstrap-icons-map, "file-earmark-post"); } +.bi-file-earmark-ppt-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-ppt-fill"); } +.bi-file-earmark-ppt::before { content: map-get($bootstrap-icons-map, "file-earmark-ppt"); } +.bi-file-earmark-richtext-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-richtext-fill"); } +.bi-file-earmark-richtext::before { content: map-get($bootstrap-icons-map, "file-earmark-richtext"); } +.bi-file-earmark-ruled-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-ruled-fill"); } +.bi-file-earmark-ruled::before { content: map-get($bootstrap-icons-map, "file-earmark-ruled"); } +.bi-file-earmark-slides-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-slides-fill"); } +.bi-file-earmark-slides::before { content: map-get($bootstrap-icons-map, "file-earmark-slides"); } +.bi-file-earmark-spreadsheet-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-spreadsheet-fill"); } +.bi-file-earmark-spreadsheet::before { content: map-get($bootstrap-icons-map, "file-earmark-spreadsheet"); } +.bi-file-earmark-text-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-text-fill"); } +.bi-file-earmark-text::before { content: map-get($bootstrap-icons-map, "file-earmark-text"); } +.bi-file-earmark-word-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-word-fill"); } +.bi-file-earmark-word::before { content: map-get($bootstrap-icons-map, "file-earmark-word"); } +.bi-file-earmark-x-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-x-fill"); } +.bi-file-earmark-x::before { content: map-get($bootstrap-icons-map, "file-earmark-x"); } +.bi-file-earmark-zip-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-zip-fill"); } +.bi-file-earmark-zip::before { content: map-get($bootstrap-icons-map, "file-earmark-zip"); } +.bi-file-earmark::before { content: map-get($bootstrap-icons-map, "file-earmark"); } +.bi-file-easel-fill::before { content: map-get($bootstrap-icons-map, "file-easel-fill"); } +.bi-file-easel::before { content: map-get($bootstrap-icons-map, "file-easel"); } +.bi-file-excel-fill::before { content: map-get($bootstrap-icons-map, "file-excel-fill"); } +.bi-file-excel::before { content: map-get($bootstrap-icons-map, "file-excel"); } +.bi-file-fill::before { content: map-get($bootstrap-icons-map, "file-fill"); } +.bi-file-font-fill::before { content: map-get($bootstrap-icons-map, "file-font-fill"); } +.bi-file-font::before { content: map-get($bootstrap-icons-map, "file-font"); } +.bi-file-image-fill::before { content: map-get($bootstrap-icons-map, "file-image-fill"); } +.bi-file-image::before { content: map-get($bootstrap-icons-map, "file-image"); } +.bi-file-lock-fill::before { content: map-get($bootstrap-icons-map, "file-lock-fill"); } +.bi-file-lock::before { content: map-get($bootstrap-icons-map, "file-lock"); } +.bi-file-lock2-fill::before { content: map-get($bootstrap-icons-map, "file-lock2-fill"); } +.bi-file-lock2::before { content: map-get($bootstrap-icons-map, "file-lock2"); } +.bi-file-medical-fill::before { content: map-get($bootstrap-icons-map, "file-medical-fill"); } +.bi-file-medical::before { content: map-get($bootstrap-icons-map, "file-medical"); } +.bi-file-minus-fill::before { content: map-get($bootstrap-icons-map, "file-minus-fill"); } +.bi-file-minus::before { content: map-get($bootstrap-icons-map, "file-minus"); } +.bi-file-music-fill::before { content: map-get($bootstrap-icons-map, "file-music-fill"); } +.bi-file-music::before { content: map-get($bootstrap-icons-map, "file-music"); } +.bi-file-person-fill::before { content: map-get($bootstrap-icons-map, "file-person-fill"); } +.bi-file-person::before { content: map-get($bootstrap-icons-map, "file-person"); } +.bi-file-play-fill::before { content: map-get($bootstrap-icons-map, "file-play-fill"); } +.bi-file-play::before { content: map-get($bootstrap-icons-map, "file-play"); } +.bi-file-plus-fill::before { content: map-get($bootstrap-icons-map, "file-plus-fill"); } +.bi-file-plus::before { content: map-get($bootstrap-icons-map, "file-plus"); } +.bi-file-post-fill::before { content: map-get($bootstrap-icons-map, "file-post-fill"); } +.bi-file-post::before { content: map-get($bootstrap-icons-map, "file-post"); } +.bi-file-ppt-fill::before { content: map-get($bootstrap-icons-map, "file-ppt-fill"); } +.bi-file-ppt::before { content: map-get($bootstrap-icons-map, "file-ppt"); } +.bi-file-richtext-fill::before { content: map-get($bootstrap-icons-map, "file-richtext-fill"); } +.bi-file-richtext::before { content: map-get($bootstrap-icons-map, "file-richtext"); } +.bi-file-ruled-fill::before { content: map-get($bootstrap-icons-map, "file-ruled-fill"); } +.bi-file-ruled::before { content: map-get($bootstrap-icons-map, "file-ruled"); } +.bi-file-slides-fill::before { content: map-get($bootstrap-icons-map, "file-slides-fill"); } +.bi-file-slides::before { content: map-get($bootstrap-icons-map, "file-slides"); } +.bi-file-spreadsheet-fill::before { content: map-get($bootstrap-icons-map, "file-spreadsheet-fill"); } +.bi-file-spreadsheet::before { content: map-get($bootstrap-icons-map, "file-spreadsheet"); } +.bi-file-text-fill::before { content: map-get($bootstrap-icons-map, "file-text-fill"); } +.bi-file-text::before { content: map-get($bootstrap-icons-map, "file-text"); } +.bi-file-word-fill::before { content: map-get($bootstrap-icons-map, "file-word-fill"); } +.bi-file-word::before { content: map-get($bootstrap-icons-map, "file-word"); } +.bi-file-x-fill::before { content: map-get($bootstrap-icons-map, "file-x-fill"); } +.bi-file-x::before { content: map-get($bootstrap-icons-map, "file-x"); } +.bi-file-zip-fill::before { content: map-get($bootstrap-icons-map, "file-zip-fill"); } +.bi-file-zip::before { content: map-get($bootstrap-icons-map, "file-zip"); } +.bi-file::before { content: map-get($bootstrap-icons-map, "file"); } +.bi-files-alt::before { content: map-get($bootstrap-icons-map, "files-alt"); } +.bi-files::before { content: map-get($bootstrap-icons-map, "files"); } +.bi-film::before { content: map-get($bootstrap-icons-map, "film"); } +.bi-filter-circle-fill::before { content: map-get($bootstrap-icons-map, "filter-circle-fill"); } +.bi-filter-circle::before { content: map-get($bootstrap-icons-map, "filter-circle"); } +.bi-filter-left::before { content: map-get($bootstrap-icons-map, "filter-left"); } +.bi-filter-right::before { content: map-get($bootstrap-icons-map, "filter-right"); } +.bi-filter-square-fill::before { content: map-get($bootstrap-icons-map, "filter-square-fill"); } +.bi-filter-square::before { content: map-get($bootstrap-icons-map, "filter-square"); } +.bi-filter::before { content: map-get($bootstrap-icons-map, "filter"); } +.bi-flag-fill::before { content: map-get($bootstrap-icons-map, "flag-fill"); } +.bi-flag::before { content: map-get($bootstrap-icons-map, "flag"); } +.bi-flower1::before { content: map-get($bootstrap-icons-map, "flower1"); } +.bi-flower2::before { content: map-get($bootstrap-icons-map, "flower2"); } +.bi-flower3::before { content: map-get($bootstrap-icons-map, "flower3"); } +.bi-folder-check::before { content: map-get($bootstrap-icons-map, "folder-check"); } +.bi-folder-fill::before { content: map-get($bootstrap-icons-map, "folder-fill"); } +.bi-folder-minus::before { content: map-get($bootstrap-icons-map, "folder-minus"); } +.bi-folder-plus::before { content: map-get($bootstrap-icons-map, "folder-plus"); } +.bi-folder-symlink-fill::before { content: map-get($bootstrap-icons-map, "folder-symlink-fill"); } +.bi-folder-symlink::before { content: map-get($bootstrap-icons-map, "folder-symlink"); } +.bi-folder-x::before { content: map-get($bootstrap-icons-map, "folder-x"); } +.bi-folder::before { content: map-get($bootstrap-icons-map, "folder"); } +.bi-folder2-open::before { content: map-get($bootstrap-icons-map, "folder2-open"); } +.bi-folder2::before { content: map-get($bootstrap-icons-map, "folder2"); } +.bi-fonts::before { content: map-get($bootstrap-icons-map, "fonts"); } +.bi-forward-fill::before { content: map-get($bootstrap-icons-map, "forward-fill"); } +.bi-forward::before { content: map-get($bootstrap-icons-map, "forward"); } +.bi-front::before { content: map-get($bootstrap-icons-map, "front"); } +.bi-fullscreen-exit::before { content: map-get($bootstrap-icons-map, "fullscreen-exit"); } +.bi-fullscreen::before { content: map-get($bootstrap-icons-map, "fullscreen"); } +.bi-funnel-fill::before { content: map-get($bootstrap-icons-map, "funnel-fill"); } +.bi-funnel::before { content: map-get($bootstrap-icons-map, "funnel"); } +.bi-gear-fill::before { content: map-get($bootstrap-icons-map, "gear-fill"); } +.bi-gear-wide-connected::before { content: map-get($bootstrap-icons-map, "gear-wide-connected"); } +.bi-gear-wide::before { content: map-get($bootstrap-icons-map, "gear-wide"); } +.bi-gear::before { content: map-get($bootstrap-icons-map, "gear"); } +.bi-gem::before { content: map-get($bootstrap-icons-map, "gem"); } +.bi-geo-alt-fill::before { content: map-get($bootstrap-icons-map, "geo-alt-fill"); } +.bi-geo-alt::before { content: map-get($bootstrap-icons-map, "geo-alt"); } +.bi-geo-fill::before { content: map-get($bootstrap-icons-map, "geo-fill"); } +.bi-geo::before { content: map-get($bootstrap-icons-map, "geo"); } +.bi-gift-fill::before { content: map-get($bootstrap-icons-map, "gift-fill"); } +.bi-gift::before { content: map-get($bootstrap-icons-map, "gift"); } +.bi-github::before { content: map-get($bootstrap-icons-map, "github"); } +.bi-globe::before { content: map-get($bootstrap-icons-map, "globe"); } +.bi-globe2::before { content: map-get($bootstrap-icons-map, "globe2"); } +.bi-google::before { content: map-get($bootstrap-icons-map, "google"); } +.bi-graph-down::before { content: map-get($bootstrap-icons-map, "graph-down"); } +.bi-graph-up::before { content: map-get($bootstrap-icons-map, "graph-up"); } +.bi-grid-1x2-fill::before { content: map-get($bootstrap-icons-map, "grid-1x2-fill"); } +.bi-grid-1x2::before { content: map-get($bootstrap-icons-map, "grid-1x2"); } +.bi-grid-3x2-gap-fill::before { content: map-get($bootstrap-icons-map, "grid-3x2-gap-fill"); } +.bi-grid-3x2-gap::before { content: map-get($bootstrap-icons-map, "grid-3x2-gap"); } +.bi-grid-3x2::before { content: map-get($bootstrap-icons-map, "grid-3x2"); } +.bi-grid-3x3-gap-fill::before { content: map-get($bootstrap-icons-map, "grid-3x3-gap-fill"); } +.bi-grid-3x3-gap::before { content: map-get($bootstrap-icons-map, "grid-3x3-gap"); } +.bi-grid-3x3::before { content: map-get($bootstrap-icons-map, "grid-3x3"); } +.bi-grid-fill::before { content: map-get($bootstrap-icons-map, "grid-fill"); } +.bi-grid::before { content: map-get($bootstrap-icons-map, "grid"); } +.bi-grip-horizontal::before { content: map-get($bootstrap-icons-map, "grip-horizontal"); } +.bi-grip-vertical::before { content: map-get($bootstrap-icons-map, "grip-vertical"); } +.bi-hammer::before { content: map-get($bootstrap-icons-map, "hammer"); } +.bi-hand-index-fill::before { content: map-get($bootstrap-icons-map, "hand-index-fill"); } +.bi-hand-index-thumb-fill::before { content: map-get($bootstrap-icons-map, "hand-index-thumb-fill"); } +.bi-hand-index-thumb::before { content: map-get($bootstrap-icons-map, "hand-index-thumb"); } +.bi-hand-index::before { content: map-get($bootstrap-icons-map, "hand-index"); } +.bi-hand-thumbs-down-fill::before { content: map-get($bootstrap-icons-map, "hand-thumbs-down-fill"); } +.bi-hand-thumbs-down::before { content: map-get($bootstrap-icons-map, "hand-thumbs-down"); } +.bi-hand-thumbs-up-fill::before { content: map-get($bootstrap-icons-map, "hand-thumbs-up-fill"); } +.bi-hand-thumbs-up::before { content: map-get($bootstrap-icons-map, "hand-thumbs-up"); } +.bi-handbag-fill::before { content: map-get($bootstrap-icons-map, "handbag-fill"); } +.bi-handbag::before { content: map-get($bootstrap-icons-map, "handbag"); } +.bi-hash::before { content: map-get($bootstrap-icons-map, "hash"); } +.bi-hdd-fill::before { content: map-get($bootstrap-icons-map, "hdd-fill"); } +.bi-hdd-network-fill::before { content: map-get($bootstrap-icons-map, "hdd-network-fill"); } +.bi-hdd-network::before { content: map-get($bootstrap-icons-map, "hdd-network"); } +.bi-hdd-rack-fill::before { content: map-get($bootstrap-icons-map, "hdd-rack-fill"); } +.bi-hdd-rack::before { content: map-get($bootstrap-icons-map, "hdd-rack"); } +.bi-hdd-stack-fill::before { content: map-get($bootstrap-icons-map, "hdd-stack-fill"); } +.bi-hdd-stack::before { content: map-get($bootstrap-icons-map, "hdd-stack"); } +.bi-hdd::before { content: map-get($bootstrap-icons-map, "hdd"); } +.bi-headphones::before { content: map-get($bootstrap-icons-map, "headphones"); } +.bi-headset::before { content: map-get($bootstrap-icons-map, "headset"); } +.bi-heart-fill::before { content: map-get($bootstrap-icons-map, "heart-fill"); } +.bi-heart-half::before { content: map-get($bootstrap-icons-map, "heart-half"); } +.bi-heart::before { content: map-get($bootstrap-icons-map, "heart"); } +.bi-heptagon-fill::before { content: map-get($bootstrap-icons-map, "heptagon-fill"); } +.bi-heptagon-half::before { content: map-get($bootstrap-icons-map, "heptagon-half"); } +.bi-heptagon::before { content: map-get($bootstrap-icons-map, "heptagon"); } +.bi-hexagon-fill::before { content: map-get($bootstrap-icons-map, "hexagon-fill"); } +.bi-hexagon-half::before { content: map-get($bootstrap-icons-map, "hexagon-half"); } +.bi-hexagon::before { content: map-get($bootstrap-icons-map, "hexagon"); } +.bi-hourglass-bottom::before { content: map-get($bootstrap-icons-map, "hourglass-bottom"); } +.bi-hourglass-split::before { content: map-get($bootstrap-icons-map, "hourglass-split"); } +.bi-hourglass-top::before { content: map-get($bootstrap-icons-map, "hourglass-top"); } +.bi-hourglass::before { content: map-get($bootstrap-icons-map, "hourglass"); } +.bi-house-door-fill::before { content: map-get($bootstrap-icons-map, "house-door-fill"); } +.bi-house-door::before { content: map-get($bootstrap-icons-map, "house-door"); } +.bi-house-fill::before { content: map-get($bootstrap-icons-map, "house-fill"); } +.bi-house::before { content: map-get($bootstrap-icons-map, "house"); } +.bi-hr::before { content: map-get($bootstrap-icons-map, "hr"); } +.bi-hurricane::before { content: map-get($bootstrap-icons-map, "hurricane"); } +.bi-image-alt::before { content: map-get($bootstrap-icons-map, "image-alt"); } +.bi-image-fill::before { content: map-get($bootstrap-icons-map, "image-fill"); } +.bi-image::before { content: map-get($bootstrap-icons-map, "image"); } +.bi-images::before { content: map-get($bootstrap-icons-map, "images"); } +.bi-inbox-fill::before { content: map-get($bootstrap-icons-map, "inbox-fill"); } +.bi-inbox::before { content: map-get($bootstrap-icons-map, "inbox"); } +.bi-inboxes-fill::before { content: map-get($bootstrap-icons-map, "inboxes-fill"); } +.bi-inboxes::before { content: map-get($bootstrap-icons-map, "inboxes"); } +.bi-info-circle-fill::before { content: map-get($bootstrap-icons-map, "info-circle-fill"); } +.bi-info-circle::before { content: map-get($bootstrap-icons-map, "info-circle"); } +.bi-info-square-fill::before { content: map-get($bootstrap-icons-map, "info-square-fill"); } +.bi-info-square::before { content: map-get($bootstrap-icons-map, "info-square"); } +.bi-info::before { content: map-get($bootstrap-icons-map, "info"); } +.bi-input-cursor-text::before { content: map-get($bootstrap-icons-map, "input-cursor-text"); } +.bi-input-cursor::before { content: map-get($bootstrap-icons-map, "input-cursor"); } +.bi-instagram::before { content: map-get($bootstrap-icons-map, "instagram"); } +.bi-intersect::before { content: map-get($bootstrap-icons-map, "intersect"); } +.bi-journal-album::before { content: map-get($bootstrap-icons-map, "journal-album"); } +.bi-journal-arrow-down::before { content: map-get($bootstrap-icons-map, "journal-arrow-down"); } +.bi-journal-arrow-up::before { content: map-get($bootstrap-icons-map, "journal-arrow-up"); } +.bi-journal-bookmark-fill::before { content: map-get($bootstrap-icons-map, "journal-bookmark-fill"); } +.bi-journal-bookmark::before { content: map-get($bootstrap-icons-map, "journal-bookmark"); } +.bi-journal-check::before { content: map-get($bootstrap-icons-map, "journal-check"); } +.bi-journal-code::before { content: map-get($bootstrap-icons-map, "journal-code"); } +.bi-journal-medical::before { content: map-get($bootstrap-icons-map, "journal-medical"); } +.bi-journal-minus::before { content: map-get($bootstrap-icons-map, "journal-minus"); } +.bi-journal-plus::before { content: map-get($bootstrap-icons-map, "journal-plus"); } +.bi-journal-richtext::before { content: map-get($bootstrap-icons-map, "journal-richtext"); } +.bi-journal-text::before { content: map-get($bootstrap-icons-map, "journal-text"); } +.bi-journal-x::before { content: map-get($bootstrap-icons-map, "journal-x"); } +.bi-journal::before { content: map-get($bootstrap-icons-map, "journal"); } +.bi-journals::before { content: map-get($bootstrap-icons-map, "journals"); } +.bi-joystick::before { content: map-get($bootstrap-icons-map, "joystick"); } +.bi-justify-left::before { content: map-get($bootstrap-icons-map, "justify-left"); } +.bi-justify-right::before { content: map-get($bootstrap-icons-map, "justify-right"); } +.bi-justify::before { content: map-get($bootstrap-icons-map, "justify"); } +.bi-kanban-fill::before { content: map-get($bootstrap-icons-map, "kanban-fill"); } +.bi-kanban::before { content: map-get($bootstrap-icons-map, "kanban"); } +.bi-key-fill::before { content: map-get($bootstrap-icons-map, "key-fill"); } +.bi-key::before { content: map-get($bootstrap-icons-map, "key"); } +.bi-keyboard-fill::before { content: map-get($bootstrap-icons-map, "keyboard-fill"); } +.bi-keyboard::before { content: map-get($bootstrap-icons-map, "keyboard"); } +.bi-ladder::before { content: map-get($bootstrap-icons-map, "ladder"); } +.bi-lamp-fill::before { content: map-get($bootstrap-icons-map, "lamp-fill"); } +.bi-lamp::before { content: map-get($bootstrap-icons-map, "lamp"); } +.bi-laptop-fill::before { content: map-get($bootstrap-icons-map, "laptop-fill"); } +.bi-laptop::before { content: map-get($bootstrap-icons-map, "laptop"); } +.bi-layer-backward::before { content: map-get($bootstrap-icons-map, "layer-backward"); } +.bi-layer-forward::before { content: map-get($bootstrap-icons-map, "layer-forward"); } +.bi-layers-fill::before { content: map-get($bootstrap-icons-map, "layers-fill"); } +.bi-layers-half::before { content: map-get($bootstrap-icons-map, "layers-half"); } +.bi-layers::before { content: map-get($bootstrap-icons-map, "layers"); } +.bi-layout-sidebar-inset-reverse::before { content: map-get($bootstrap-icons-map, "layout-sidebar-inset-reverse"); } +.bi-layout-sidebar-inset::before { content: map-get($bootstrap-icons-map, "layout-sidebar-inset"); } +.bi-layout-sidebar-reverse::before { content: map-get($bootstrap-icons-map, "layout-sidebar-reverse"); } +.bi-layout-sidebar::before { content: map-get($bootstrap-icons-map, "layout-sidebar"); } +.bi-layout-split::before { content: map-get($bootstrap-icons-map, "layout-split"); } +.bi-layout-text-sidebar-reverse::before { content: map-get($bootstrap-icons-map, "layout-text-sidebar-reverse"); } +.bi-layout-text-sidebar::before { content: map-get($bootstrap-icons-map, "layout-text-sidebar"); } +.bi-layout-text-window-reverse::before { content: map-get($bootstrap-icons-map, "layout-text-window-reverse"); } +.bi-layout-text-window::before { content: map-get($bootstrap-icons-map, "layout-text-window"); } +.bi-layout-three-columns::before { content: map-get($bootstrap-icons-map, "layout-three-columns"); } +.bi-layout-wtf::before { content: map-get($bootstrap-icons-map, "layout-wtf"); } +.bi-life-preserver::before { content: map-get($bootstrap-icons-map, "life-preserver"); } +.bi-lightbulb-fill::before { content: map-get($bootstrap-icons-map, "lightbulb-fill"); } +.bi-lightbulb-off-fill::before { content: map-get($bootstrap-icons-map, "lightbulb-off-fill"); } +.bi-lightbulb-off::before { content: map-get($bootstrap-icons-map, "lightbulb-off"); } +.bi-lightbulb::before { content: map-get($bootstrap-icons-map, "lightbulb"); } +.bi-lightning-charge-fill::before { content: map-get($bootstrap-icons-map, "lightning-charge-fill"); } +.bi-lightning-charge::before { content: map-get($bootstrap-icons-map, "lightning-charge"); } +.bi-lightning-fill::before { content: map-get($bootstrap-icons-map, "lightning-fill"); } +.bi-lightning::before { content: map-get($bootstrap-icons-map, "lightning"); } +.bi-link-45deg::before { content: map-get($bootstrap-icons-map, "link-45deg"); } +.bi-link::before { content: map-get($bootstrap-icons-map, "link"); } +.bi-linkedin::before { content: map-get($bootstrap-icons-map, "linkedin"); } +.bi-list-check::before { content: map-get($bootstrap-icons-map, "list-check"); } +.bi-list-nested::before { content: map-get($bootstrap-icons-map, "list-nested"); } +.bi-list-ol::before { content: map-get($bootstrap-icons-map, "list-ol"); } +.bi-list-stars::before { content: map-get($bootstrap-icons-map, "list-stars"); } +.bi-list-task::before { content: map-get($bootstrap-icons-map, "list-task"); } +.bi-list-ul::before { content: map-get($bootstrap-icons-map, "list-ul"); } +.bi-list::before { content: map-get($bootstrap-icons-map, "list"); } +.bi-lock-fill::before { content: map-get($bootstrap-icons-map, "lock-fill"); } +.bi-lock::before { content: map-get($bootstrap-icons-map, "lock"); } +.bi-mailbox::before { content: map-get($bootstrap-icons-map, "mailbox"); } +.bi-mailbox2::before { content: map-get($bootstrap-icons-map, "mailbox2"); } +.bi-map-fill::before { content: map-get($bootstrap-icons-map, "map-fill"); } +.bi-map::before { content: map-get($bootstrap-icons-map, "map"); } +.bi-markdown-fill::before { content: map-get($bootstrap-icons-map, "markdown-fill"); } +.bi-markdown::before { content: map-get($bootstrap-icons-map, "markdown"); } +.bi-mask::before { content: map-get($bootstrap-icons-map, "mask"); } +.bi-megaphone-fill::before { content: map-get($bootstrap-icons-map, "megaphone-fill"); } +.bi-megaphone::before { content: map-get($bootstrap-icons-map, "megaphone"); } +.bi-menu-app-fill::before { content: map-get($bootstrap-icons-map, "menu-app-fill"); } +.bi-menu-app::before { content: map-get($bootstrap-icons-map, "menu-app"); } +.bi-menu-button-fill::before { content: map-get($bootstrap-icons-map, "menu-button-fill"); } +.bi-menu-button-wide-fill::before { content: map-get($bootstrap-icons-map, "menu-button-wide-fill"); } +.bi-menu-button-wide::before { content: map-get($bootstrap-icons-map, "menu-button-wide"); } +.bi-menu-button::before { content: map-get($bootstrap-icons-map, "menu-button"); } +.bi-menu-down::before { content: map-get($bootstrap-icons-map, "menu-down"); } +.bi-menu-up::before { content: map-get($bootstrap-icons-map, "menu-up"); } +.bi-mic-fill::before { content: map-get($bootstrap-icons-map, "mic-fill"); } +.bi-mic-mute-fill::before { content: map-get($bootstrap-icons-map, "mic-mute-fill"); } +.bi-mic-mute::before { content: map-get($bootstrap-icons-map, "mic-mute"); } +.bi-mic::before { content: map-get($bootstrap-icons-map, "mic"); } +.bi-minecart-loaded::before { content: map-get($bootstrap-icons-map, "minecart-loaded"); } +.bi-minecart::before { content: map-get($bootstrap-icons-map, "minecart"); } +.bi-moisture::before { content: map-get($bootstrap-icons-map, "moisture"); } +.bi-moon-fill::before { content: map-get($bootstrap-icons-map, "moon-fill"); } +.bi-moon-stars-fill::before { content: map-get($bootstrap-icons-map, "moon-stars-fill"); } +.bi-moon-stars::before { content: map-get($bootstrap-icons-map, "moon-stars"); } +.bi-moon::before { content: map-get($bootstrap-icons-map, "moon"); } +.bi-mouse-fill::before { content: map-get($bootstrap-icons-map, "mouse-fill"); } +.bi-mouse::before { content: map-get($bootstrap-icons-map, "mouse"); } +.bi-mouse2-fill::before { content: map-get($bootstrap-icons-map, "mouse2-fill"); } +.bi-mouse2::before { content: map-get($bootstrap-icons-map, "mouse2"); } +.bi-mouse3-fill::before { content: map-get($bootstrap-icons-map, "mouse3-fill"); } +.bi-mouse3::before { content: map-get($bootstrap-icons-map, "mouse3"); } +.bi-music-note-beamed::before { content: map-get($bootstrap-icons-map, "music-note-beamed"); } +.bi-music-note-list::before { content: map-get($bootstrap-icons-map, "music-note-list"); } +.bi-music-note::before { content: map-get($bootstrap-icons-map, "music-note"); } +.bi-music-player-fill::before { content: map-get($bootstrap-icons-map, "music-player-fill"); } +.bi-music-player::before { content: map-get($bootstrap-icons-map, "music-player"); } +.bi-newspaper::before { content: map-get($bootstrap-icons-map, "newspaper"); } +.bi-node-minus-fill::before { content: map-get($bootstrap-icons-map, "node-minus-fill"); } +.bi-node-minus::before { content: map-get($bootstrap-icons-map, "node-minus"); } +.bi-node-plus-fill::before { content: map-get($bootstrap-icons-map, "node-plus-fill"); } +.bi-node-plus::before { content: map-get($bootstrap-icons-map, "node-plus"); } +.bi-nut-fill::before { content: map-get($bootstrap-icons-map, "nut-fill"); } +.bi-nut::before { content: map-get($bootstrap-icons-map, "nut"); } +.bi-octagon-fill::before { content: map-get($bootstrap-icons-map, "octagon-fill"); } +.bi-octagon-half::before { content: map-get($bootstrap-icons-map, "octagon-half"); } +.bi-octagon::before { content: map-get($bootstrap-icons-map, "octagon"); } +.bi-option::before { content: map-get($bootstrap-icons-map, "option"); } +.bi-outlet::before { content: map-get($bootstrap-icons-map, "outlet"); } +.bi-paint-bucket::before { content: map-get($bootstrap-icons-map, "paint-bucket"); } +.bi-palette-fill::before { content: map-get($bootstrap-icons-map, "palette-fill"); } +.bi-palette::before { content: map-get($bootstrap-icons-map, "palette"); } +.bi-palette2::before { content: map-get($bootstrap-icons-map, "palette2"); } +.bi-paperclip::before { content: map-get($bootstrap-icons-map, "paperclip"); } +.bi-paragraph::before { content: map-get($bootstrap-icons-map, "paragraph"); } +.bi-patch-check-fill::before { content: map-get($bootstrap-icons-map, "patch-check-fill"); } +.bi-patch-check::before { content: map-get($bootstrap-icons-map, "patch-check"); } +.bi-patch-exclamation-fill::before { content: map-get($bootstrap-icons-map, "patch-exclamation-fill"); } +.bi-patch-exclamation::before { content: map-get($bootstrap-icons-map, "patch-exclamation"); } +.bi-patch-minus-fill::before { content: map-get($bootstrap-icons-map, "patch-minus-fill"); } +.bi-patch-minus::before { content: map-get($bootstrap-icons-map, "patch-minus"); } +.bi-patch-plus-fill::before { content: map-get($bootstrap-icons-map, "patch-plus-fill"); } +.bi-patch-plus::before { content: map-get($bootstrap-icons-map, "patch-plus"); } +.bi-patch-question-fill::before { content: map-get($bootstrap-icons-map, "patch-question-fill"); } +.bi-patch-question::before { content: map-get($bootstrap-icons-map, "patch-question"); } +.bi-pause-btn-fill::before { content: map-get($bootstrap-icons-map, "pause-btn-fill"); } +.bi-pause-btn::before { content: map-get($bootstrap-icons-map, "pause-btn"); } +.bi-pause-circle-fill::before { content: map-get($bootstrap-icons-map, "pause-circle-fill"); } +.bi-pause-circle::before { content: map-get($bootstrap-icons-map, "pause-circle"); } +.bi-pause-fill::before { content: map-get($bootstrap-icons-map, "pause-fill"); } +.bi-pause::before { content: map-get($bootstrap-icons-map, "pause"); } +.bi-peace-fill::before { content: map-get($bootstrap-icons-map, "peace-fill"); } +.bi-peace::before { content: map-get($bootstrap-icons-map, "peace"); } +.bi-pen-fill::before { content: map-get($bootstrap-icons-map, "pen-fill"); } +.bi-pen::before { content: map-get($bootstrap-icons-map, "pen"); } +.bi-pencil-fill::before { content: map-get($bootstrap-icons-map, "pencil-fill"); } +.bi-pencil-square::before { content: map-get($bootstrap-icons-map, "pencil-square"); } +.bi-pencil::before { content: map-get($bootstrap-icons-map, "pencil"); } +.bi-pentagon-fill::before { content: map-get($bootstrap-icons-map, "pentagon-fill"); } +.bi-pentagon-half::before { content: map-get($bootstrap-icons-map, "pentagon-half"); } +.bi-pentagon::before { content: map-get($bootstrap-icons-map, "pentagon"); } +.bi-people-fill::before { content: map-get($bootstrap-icons-map, "people-fill"); } +.bi-people::before { content: map-get($bootstrap-icons-map, "people"); } +.bi-percent::before { content: map-get($bootstrap-icons-map, "percent"); } +.bi-person-badge-fill::before { content: map-get($bootstrap-icons-map, "person-badge-fill"); } +.bi-person-badge::before { content: map-get($bootstrap-icons-map, "person-badge"); } +.bi-person-bounding-box::before { content: map-get($bootstrap-icons-map, "person-bounding-box"); } +.bi-person-check-fill::before { content: map-get($bootstrap-icons-map, "person-check-fill"); } +.bi-person-check::before { content: map-get($bootstrap-icons-map, "person-check"); } +.bi-person-circle::before { content: map-get($bootstrap-icons-map, "person-circle"); } +.bi-person-dash-fill::before { content: map-get($bootstrap-icons-map, "person-dash-fill"); } +.bi-person-dash::before { content: map-get($bootstrap-icons-map, "person-dash"); } +.bi-person-fill::before { content: map-get($bootstrap-icons-map, "person-fill"); } +.bi-person-lines-fill::before { content: map-get($bootstrap-icons-map, "person-lines-fill"); } +.bi-person-plus-fill::before { content: map-get($bootstrap-icons-map, "person-plus-fill"); } +.bi-person-plus::before { content: map-get($bootstrap-icons-map, "person-plus"); } +.bi-person-square::before { content: map-get($bootstrap-icons-map, "person-square"); } +.bi-person-x-fill::before { content: map-get($bootstrap-icons-map, "person-x-fill"); } +.bi-person-x::before { content: map-get($bootstrap-icons-map, "person-x"); } +.bi-person::before { content: map-get($bootstrap-icons-map, "person"); } +.bi-phone-fill::before { content: map-get($bootstrap-icons-map, "phone-fill"); } +.bi-phone-landscape-fill::before { content: map-get($bootstrap-icons-map, "phone-landscape-fill"); } +.bi-phone-landscape::before { content: map-get($bootstrap-icons-map, "phone-landscape"); } +.bi-phone-vibrate-fill::before { content: map-get($bootstrap-icons-map, "phone-vibrate-fill"); } +.bi-phone-vibrate::before { content: map-get($bootstrap-icons-map, "phone-vibrate"); } +.bi-phone::before { content: map-get($bootstrap-icons-map, "phone"); } +.bi-pie-chart-fill::before { content: map-get($bootstrap-icons-map, "pie-chart-fill"); } +.bi-pie-chart::before { content: map-get($bootstrap-icons-map, "pie-chart"); } +.bi-pin-angle-fill::before { content: map-get($bootstrap-icons-map, "pin-angle-fill"); } +.bi-pin-angle::before { content: map-get($bootstrap-icons-map, "pin-angle"); } +.bi-pin-fill::before { content: map-get($bootstrap-icons-map, "pin-fill"); } +.bi-pin::before { content: map-get($bootstrap-icons-map, "pin"); } +.bi-pip-fill::before { content: map-get($bootstrap-icons-map, "pip-fill"); } +.bi-pip::before { content: map-get($bootstrap-icons-map, "pip"); } +.bi-play-btn-fill::before { content: map-get($bootstrap-icons-map, "play-btn-fill"); } +.bi-play-btn::before { content: map-get($bootstrap-icons-map, "play-btn"); } +.bi-play-circle-fill::before { content: map-get($bootstrap-icons-map, "play-circle-fill"); } +.bi-play-circle::before { content: map-get($bootstrap-icons-map, "play-circle"); } +.bi-play-fill::before { content: map-get($bootstrap-icons-map, "play-fill"); } +.bi-play::before { content: map-get($bootstrap-icons-map, "play"); } +.bi-plug-fill::before { content: map-get($bootstrap-icons-map, "plug-fill"); } +.bi-plug::before { content: map-get($bootstrap-icons-map, "plug"); } +.bi-plus-circle-dotted::before { content: map-get($bootstrap-icons-map, "plus-circle-dotted"); } +.bi-plus-circle-fill::before { content: map-get($bootstrap-icons-map, "plus-circle-fill"); } +.bi-plus-circle::before { content: map-get($bootstrap-icons-map, "plus-circle"); } +.bi-plus-square-dotted::before { content: map-get($bootstrap-icons-map, "plus-square-dotted"); } +.bi-plus-square-fill::before { content: map-get($bootstrap-icons-map, "plus-square-fill"); } +.bi-plus-square::before { content: map-get($bootstrap-icons-map, "plus-square"); } +.bi-plus::before { content: map-get($bootstrap-icons-map, "plus"); } +.bi-power::before { content: map-get($bootstrap-icons-map, "power"); } +.bi-printer-fill::before { content: map-get($bootstrap-icons-map, "printer-fill"); } +.bi-printer::before { content: map-get($bootstrap-icons-map, "printer"); } +.bi-puzzle-fill::before { content: map-get($bootstrap-icons-map, "puzzle-fill"); } +.bi-puzzle::before { content: map-get($bootstrap-icons-map, "puzzle"); } +.bi-question-circle-fill::before { content: map-get($bootstrap-icons-map, "question-circle-fill"); } +.bi-question-circle::before { content: map-get($bootstrap-icons-map, "question-circle"); } +.bi-question-diamond-fill::before { content: map-get($bootstrap-icons-map, "question-diamond-fill"); } +.bi-question-diamond::before { content: map-get($bootstrap-icons-map, "question-diamond"); } +.bi-question-octagon-fill::before { content: map-get($bootstrap-icons-map, "question-octagon-fill"); } +.bi-question-octagon::before { content: map-get($bootstrap-icons-map, "question-octagon"); } +.bi-question-square-fill::before { content: map-get($bootstrap-icons-map, "question-square-fill"); } +.bi-question-square::before { content: map-get($bootstrap-icons-map, "question-square"); } +.bi-question::before { content: map-get($bootstrap-icons-map, "question"); } +.bi-rainbow::before { content: map-get($bootstrap-icons-map, "rainbow"); } +.bi-receipt-cutoff::before { content: map-get($bootstrap-icons-map, "receipt-cutoff"); } +.bi-receipt::before { content: map-get($bootstrap-icons-map, "receipt"); } +.bi-reception-0::before { content: map-get($bootstrap-icons-map, "reception-0"); } +.bi-reception-1::before { content: map-get($bootstrap-icons-map, "reception-1"); } +.bi-reception-2::before { content: map-get($bootstrap-icons-map, "reception-2"); } +.bi-reception-3::before { content: map-get($bootstrap-icons-map, "reception-3"); } +.bi-reception-4::before { content: map-get($bootstrap-icons-map, "reception-4"); } +.bi-record-btn-fill::before { content: map-get($bootstrap-icons-map, "record-btn-fill"); } +.bi-record-btn::before { content: map-get($bootstrap-icons-map, "record-btn"); } +.bi-record-circle-fill::before { content: map-get($bootstrap-icons-map, "record-circle-fill"); } +.bi-record-circle::before { content: map-get($bootstrap-icons-map, "record-circle"); } +.bi-record-fill::before { content: map-get($bootstrap-icons-map, "record-fill"); } +.bi-record::before { content: map-get($bootstrap-icons-map, "record"); } +.bi-record2-fill::before { content: map-get($bootstrap-icons-map, "record2-fill"); } +.bi-record2::before { content: map-get($bootstrap-icons-map, "record2"); } +.bi-reply-all-fill::before { content: map-get($bootstrap-icons-map, "reply-all-fill"); } +.bi-reply-all::before { content: map-get($bootstrap-icons-map, "reply-all"); } +.bi-reply-fill::before { content: map-get($bootstrap-icons-map, "reply-fill"); } +.bi-reply::before { content: map-get($bootstrap-icons-map, "reply"); } +.bi-rss-fill::before { content: map-get($bootstrap-icons-map, "rss-fill"); } +.bi-rss::before { content: map-get($bootstrap-icons-map, "rss"); } +.bi-rulers::before { content: map-get($bootstrap-icons-map, "rulers"); } +.bi-save-fill::before { content: map-get($bootstrap-icons-map, "save-fill"); } +.bi-save::before { content: map-get($bootstrap-icons-map, "save"); } +.bi-save2-fill::before { content: map-get($bootstrap-icons-map, "save2-fill"); } +.bi-save2::before { content: map-get($bootstrap-icons-map, "save2"); } +.bi-scissors::before { content: map-get($bootstrap-icons-map, "scissors"); } +.bi-screwdriver::before { content: map-get($bootstrap-icons-map, "screwdriver"); } +.bi-search::before { content: map-get($bootstrap-icons-map, "search"); } +.bi-segmented-nav::before { content: map-get($bootstrap-icons-map, "segmented-nav"); } +.bi-server::before { content: map-get($bootstrap-icons-map, "server"); } +.bi-share-fill::before { content: map-get($bootstrap-icons-map, "share-fill"); } +.bi-share::before { content: map-get($bootstrap-icons-map, "share"); } +.bi-shield-check::before { content: map-get($bootstrap-icons-map, "shield-check"); } +.bi-shield-exclamation::before { content: map-get($bootstrap-icons-map, "shield-exclamation"); } +.bi-shield-fill-check::before { content: map-get($bootstrap-icons-map, "shield-fill-check"); } +.bi-shield-fill-exclamation::before { content: map-get($bootstrap-icons-map, "shield-fill-exclamation"); } +.bi-shield-fill-minus::before { content: map-get($bootstrap-icons-map, "shield-fill-minus"); } +.bi-shield-fill-plus::before { content: map-get($bootstrap-icons-map, "shield-fill-plus"); } +.bi-shield-fill-x::before { content: map-get($bootstrap-icons-map, "shield-fill-x"); } +.bi-shield-fill::before { content: map-get($bootstrap-icons-map, "shield-fill"); } +.bi-shield-lock-fill::before { content: map-get($bootstrap-icons-map, "shield-lock-fill"); } +.bi-shield-lock::before { content: map-get($bootstrap-icons-map, "shield-lock"); } +.bi-shield-minus::before { content: map-get($bootstrap-icons-map, "shield-minus"); } +.bi-shield-plus::before { content: map-get($bootstrap-icons-map, "shield-plus"); } +.bi-shield-shaded::before { content: map-get($bootstrap-icons-map, "shield-shaded"); } +.bi-shield-slash-fill::before { content: map-get($bootstrap-icons-map, "shield-slash-fill"); } +.bi-shield-slash::before { content: map-get($bootstrap-icons-map, "shield-slash"); } +.bi-shield-x::before { content: map-get($bootstrap-icons-map, "shield-x"); } +.bi-shield::before { content: map-get($bootstrap-icons-map, "shield"); } +.bi-shift-fill::before { content: map-get($bootstrap-icons-map, "shift-fill"); } +.bi-shift::before { content: map-get($bootstrap-icons-map, "shift"); } +.bi-shop-window::before { content: map-get($bootstrap-icons-map, "shop-window"); } +.bi-shop::before { content: map-get($bootstrap-icons-map, "shop"); } +.bi-shuffle::before { content: map-get($bootstrap-icons-map, "shuffle"); } +.bi-signpost-2-fill::before { content: map-get($bootstrap-icons-map, "signpost-2-fill"); } +.bi-signpost-2::before { content: map-get($bootstrap-icons-map, "signpost-2"); } +.bi-signpost-fill::before { content: map-get($bootstrap-icons-map, "signpost-fill"); } +.bi-signpost-split-fill::before { content: map-get($bootstrap-icons-map, "signpost-split-fill"); } +.bi-signpost-split::before { content: map-get($bootstrap-icons-map, "signpost-split"); } +.bi-signpost::before { content: map-get($bootstrap-icons-map, "signpost"); } +.bi-sim-fill::before { content: map-get($bootstrap-icons-map, "sim-fill"); } +.bi-sim::before { content: map-get($bootstrap-icons-map, "sim"); } +.bi-skip-backward-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-btn-fill"); } +.bi-skip-backward-btn::before { content: map-get($bootstrap-icons-map, "skip-backward-btn"); } +.bi-skip-backward-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-circle-fill"); } +.bi-skip-backward-circle::before { content: map-get($bootstrap-icons-map, "skip-backward-circle"); } +.bi-skip-backward-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-fill"); } +.bi-skip-backward::before { content: map-get($bootstrap-icons-map, "skip-backward"); } +.bi-skip-end-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-end-btn-fill"); } +.bi-skip-end-btn::before { content: map-get($bootstrap-icons-map, "skip-end-btn"); } +.bi-skip-end-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-end-circle-fill"); } +.bi-skip-end-circle::before { content: map-get($bootstrap-icons-map, "skip-end-circle"); } +.bi-skip-end-fill::before { content: map-get($bootstrap-icons-map, "skip-end-fill"); } +.bi-skip-end::before { content: map-get($bootstrap-icons-map, "skip-end"); } +.bi-skip-forward-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-btn-fill"); } +.bi-skip-forward-btn::before { content: map-get($bootstrap-icons-map, "skip-forward-btn"); } +.bi-skip-forward-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-circle-fill"); } +.bi-skip-forward-circle::before { content: map-get($bootstrap-icons-map, "skip-forward-circle"); } +.bi-skip-forward-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-fill"); } +.bi-skip-forward::before { content: map-get($bootstrap-icons-map, "skip-forward"); } +.bi-skip-start-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-start-btn-fill"); } +.bi-skip-start-btn::before { content: map-get($bootstrap-icons-map, "skip-start-btn"); } +.bi-skip-start-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-start-circle-fill"); } +.bi-skip-start-circle::before { content: map-get($bootstrap-icons-map, "skip-start-circle"); } +.bi-skip-start-fill::before { content: map-get($bootstrap-icons-map, "skip-start-fill"); } +.bi-skip-start::before { content: map-get($bootstrap-icons-map, "skip-start"); } +.bi-slack::before { content: map-get($bootstrap-icons-map, "slack"); } +.bi-slash-circle-fill::before { content: map-get($bootstrap-icons-map, "slash-circle-fill"); } +.bi-slash-circle::before { content: map-get($bootstrap-icons-map, "slash-circle"); } +.bi-slash-square-fill::before { content: map-get($bootstrap-icons-map, "slash-square-fill"); } +.bi-slash-square::before { content: map-get($bootstrap-icons-map, "slash-square"); } +.bi-slash::before { content: map-get($bootstrap-icons-map, "slash"); } +.bi-sliders::before { content: map-get($bootstrap-icons-map, "sliders"); } +.bi-smartwatch::before { content: map-get($bootstrap-icons-map, "smartwatch"); } +.bi-snow::before { content: map-get($bootstrap-icons-map, "snow"); } +.bi-snow2::before { content: map-get($bootstrap-icons-map, "snow2"); } +.bi-snow3::before { content: map-get($bootstrap-icons-map, "snow3"); } +.bi-sort-alpha-down-alt::before { content: map-get($bootstrap-icons-map, "sort-alpha-down-alt"); } +.bi-sort-alpha-down::before { content: map-get($bootstrap-icons-map, "sort-alpha-down"); } +.bi-sort-alpha-up-alt::before { content: map-get($bootstrap-icons-map, "sort-alpha-up-alt"); } +.bi-sort-alpha-up::before { content: map-get($bootstrap-icons-map, "sort-alpha-up"); } +.bi-sort-down-alt::before { content: map-get($bootstrap-icons-map, "sort-down-alt"); } +.bi-sort-down::before { content: map-get($bootstrap-icons-map, "sort-down"); } +.bi-sort-numeric-down-alt::before { content: map-get($bootstrap-icons-map, "sort-numeric-down-alt"); } +.bi-sort-numeric-down::before { content: map-get($bootstrap-icons-map, "sort-numeric-down"); } +.bi-sort-numeric-up-alt::before { content: map-get($bootstrap-icons-map, "sort-numeric-up-alt"); } +.bi-sort-numeric-up::before { content: map-get($bootstrap-icons-map, "sort-numeric-up"); } +.bi-sort-up-alt::before { content: map-get($bootstrap-icons-map, "sort-up-alt"); } +.bi-sort-up::before { content: map-get($bootstrap-icons-map, "sort-up"); } +.bi-soundwave::before { content: map-get($bootstrap-icons-map, "soundwave"); } +.bi-speaker-fill::before { content: map-get($bootstrap-icons-map, "speaker-fill"); } +.bi-speaker::before { content: map-get($bootstrap-icons-map, "speaker"); } +.bi-speedometer::before { content: map-get($bootstrap-icons-map, "speedometer"); } +.bi-speedometer2::before { content: map-get($bootstrap-icons-map, "speedometer2"); } +.bi-spellcheck::before { content: map-get($bootstrap-icons-map, "spellcheck"); } +.bi-square-fill::before { content: map-get($bootstrap-icons-map, "square-fill"); } +.bi-square-half::before { content: map-get($bootstrap-icons-map, "square-half"); } +.bi-square::before { content: map-get($bootstrap-icons-map, "square"); } +.bi-stack::before { content: map-get($bootstrap-icons-map, "stack"); } +.bi-star-fill::before { content: map-get($bootstrap-icons-map, "star-fill"); } +.bi-star-half::before { content: map-get($bootstrap-icons-map, "star-half"); } +.bi-star::before { content: map-get($bootstrap-icons-map, "star"); } +.bi-stars::before { content: map-get($bootstrap-icons-map, "stars"); } +.bi-stickies-fill::before { content: map-get($bootstrap-icons-map, "stickies-fill"); } +.bi-stickies::before { content: map-get($bootstrap-icons-map, "stickies"); } +.bi-sticky-fill::before { content: map-get($bootstrap-icons-map, "sticky-fill"); } +.bi-sticky::before { content: map-get($bootstrap-icons-map, "sticky"); } +.bi-stop-btn-fill::before { content: map-get($bootstrap-icons-map, "stop-btn-fill"); } +.bi-stop-btn::before { content: map-get($bootstrap-icons-map, "stop-btn"); } +.bi-stop-circle-fill::before { content: map-get($bootstrap-icons-map, "stop-circle-fill"); } +.bi-stop-circle::before { content: map-get($bootstrap-icons-map, "stop-circle"); } +.bi-stop-fill::before { content: map-get($bootstrap-icons-map, "stop-fill"); } +.bi-stop::before { content: map-get($bootstrap-icons-map, "stop"); } +.bi-stoplights-fill::before { content: map-get($bootstrap-icons-map, "stoplights-fill"); } +.bi-stoplights::before { content: map-get($bootstrap-icons-map, "stoplights"); } +.bi-stopwatch-fill::before { content: map-get($bootstrap-icons-map, "stopwatch-fill"); } +.bi-stopwatch::before { content: map-get($bootstrap-icons-map, "stopwatch"); } +.bi-subtract::before { content: map-get($bootstrap-icons-map, "subtract"); } +.bi-suit-club-fill::before { content: map-get($bootstrap-icons-map, "suit-club-fill"); } +.bi-suit-club::before { content: map-get($bootstrap-icons-map, "suit-club"); } +.bi-suit-diamond-fill::before { content: map-get($bootstrap-icons-map, "suit-diamond-fill"); } +.bi-suit-diamond::before { content: map-get($bootstrap-icons-map, "suit-diamond"); } +.bi-suit-heart-fill::before { content: map-get($bootstrap-icons-map, "suit-heart-fill"); } +.bi-suit-heart::before { content: map-get($bootstrap-icons-map, "suit-heart"); } +.bi-suit-spade-fill::before { content: map-get($bootstrap-icons-map, "suit-spade-fill"); } +.bi-suit-spade::before { content: map-get($bootstrap-icons-map, "suit-spade"); } +.bi-sun-fill::before { content: map-get($bootstrap-icons-map, "sun-fill"); } +.bi-sun::before { content: map-get($bootstrap-icons-map, "sun"); } +.bi-sunglasses::before { content: map-get($bootstrap-icons-map, "sunglasses"); } +.bi-sunrise-fill::before { content: map-get($bootstrap-icons-map, "sunrise-fill"); } +.bi-sunrise::before { content: map-get($bootstrap-icons-map, "sunrise"); } +.bi-sunset-fill::before { content: map-get($bootstrap-icons-map, "sunset-fill"); } +.bi-sunset::before { content: map-get($bootstrap-icons-map, "sunset"); } +.bi-symmetry-horizontal::before { content: map-get($bootstrap-icons-map, "symmetry-horizontal"); } +.bi-symmetry-vertical::before { content: map-get($bootstrap-icons-map, "symmetry-vertical"); } +.bi-table::before { content: map-get($bootstrap-icons-map, "table"); } +.bi-tablet-fill::before { content: map-get($bootstrap-icons-map, "tablet-fill"); } +.bi-tablet-landscape-fill::before { content: map-get($bootstrap-icons-map, "tablet-landscape-fill"); } +.bi-tablet-landscape::before { content: map-get($bootstrap-icons-map, "tablet-landscape"); } +.bi-tablet::before { content: map-get($bootstrap-icons-map, "tablet"); } +.bi-tag-fill::before { content: map-get($bootstrap-icons-map, "tag-fill"); } +.bi-tag::before { content: map-get($bootstrap-icons-map, "tag"); } +.bi-tags-fill::before { content: map-get($bootstrap-icons-map, "tags-fill"); } +.bi-tags::before { content: map-get($bootstrap-icons-map, "tags"); } +.bi-telegram::before { content: map-get($bootstrap-icons-map, "telegram"); } +.bi-telephone-fill::before { content: map-get($bootstrap-icons-map, "telephone-fill"); } +.bi-telephone-forward-fill::before { content: map-get($bootstrap-icons-map, "telephone-forward-fill"); } +.bi-telephone-forward::before { content: map-get($bootstrap-icons-map, "telephone-forward"); } +.bi-telephone-inbound-fill::before { content: map-get($bootstrap-icons-map, "telephone-inbound-fill"); } +.bi-telephone-inbound::before { content: map-get($bootstrap-icons-map, "telephone-inbound"); } +.bi-telephone-minus-fill::before { content: map-get($bootstrap-icons-map, "telephone-minus-fill"); } +.bi-telephone-minus::before { content: map-get($bootstrap-icons-map, "telephone-minus"); } +.bi-telephone-outbound-fill::before { content: map-get($bootstrap-icons-map, "telephone-outbound-fill"); } +.bi-telephone-outbound::before { content: map-get($bootstrap-icons-map, "telephone-outbound"); } +.bi-telephone-plus-fill::before { content: map-get($bootstrap-icons-map, "telephone-plus-fill"); } +.bi-telephone-plus::before { content: map-get($bootstrap-icons-map, "telephone-plus"); } +.bi-telephone-x-fill::before { content: map-get($bootstrap-icons-map, "telephone-x-fill"); } +.bi-telephone-x::before { content: map-get($bootstrap-icons-map, "telephone-x"); } +.bi-telephone::before { content: map-get($bootstrap-icons-map, "telephone"); } +.bi-terminal-fill::before { content: map-get($bootstrap-icons-map, "terminal-fill"); } +.bi-terminal::before { content: map-get($bootstrap-icons-map, "terminal"); } +.bi-text-center::before { content: map-get($bootstrap-icons-map, "text-center"); } +.bi-text-indent-left::before { content: map-get($bootstrap-icons-map, "text-indent-left"); } +.bi-text-indent-right::before { content: map-get($bootstrap-icons-map, "text-indent-right"); } +.bi-text-left::before { content: map-get($bootstrap-icons-map, "text-left"); } +.bi-text-paragraph::before { content: map-get($bootstrap-icons-map, "text-paragraph"); } +.bi-text-right::before { content: map-get($bootstrap-icons-map, "text-right"); } +.bi-textarea-resize::before { content: map-get($bootstrap-icons-map, "textarea-resize"); } +.bi-textarea-t::before { content: map-get($bootstrap-icons-map, "textarea-t"); } +.bi-textarea::before { content: map-get($bootstrap-icons-map, "textarea"); } +.bi-thermometer-half::before { content: map-get($bootstrap-icons-map, "thermometer-half"); } +.bi-thermometer-high::before { content: map-get($bootstrap-icons-map, "thermometer-high"); } +.bi-thermometer-low::before { content: map-get($bootstrap-icons-map, "thermometer-low"); } +.bi-thermometer-snow::before { content: map-get($bootstrap-icons-map, "thermometer-snow"); } +.bi-thermometer-sun::before { content: map-get($bootstrap-icons-map, "thermometer-sun"); } +.bi-thermometer::before { content: map-get($bootstrap-icons-map, "thermometer"); } +.bi-three-dots-vertical::before { content: map-get($bootstrap-icons-map, "three-dots-vertical"); } +.bi-three-dots::before { content: map-get($bootstrap-icons-map, "three-dots"); } +.bi-toggle-off::before { content: map-get($bootstrap-icons-map, "toggle-off"); } +.bi-toggle-on::before { content: map-get($bootstrap-icons-map, "toggle-on"); } +.bi-toggle2-off::before { content: map-get($bootstrap-icons-map, "toggle2-off"); } +.bi-toggle2-on::before { content: map-get($bootstrap-icons-map, "toggle2-on"); } +.bi-toggles::before { content: map-get($bootstrap-icons-map, "toggles"); } +.bi-toggles2::before { content: map-get($bootstrap-icons-map, "toggles2"); } +.bi-tools::before { content: map-get($bootstrap-icons-map, "tools"); } +.bi-tornado::before { content: map-get($bootstrap-icons-map, "tornado"); } +.bi-trash-fill::before { content: map-get($bootstrap-icons-map, "trash-fill"); } +.bi-trash::before { content: map-get($bootstrap-icons-map, "trash"); } +.bi-trash2-fill::before { content: map-get($bootstrap-icons-map, "trash2-fill"); } +.bi-trash2::before { content: map-get($bootstrap-icons-map, "trash2"); } +.bi-tree-fill::before { content: map-get($bootstrap-icons-map, "tree-fill"); } +.bi-tree::before { content: map-get($bootstrap-icons-map, "tree"); } +.bi-triangle-fill::before { content: map-get($bootstrap-icons-map, "triangle-fill"); } +.bi-triangle-half::before { content: map-get($bootstrap-icons-map, "triangle-half"); } +.bi-triangle::before { content: map-get($bootstrap-icons-map, "triangle"); } +.bi-trophy-fill::before { content: map-get($bootstrap-icons-map, "trophy-fill"); } +.bi-trophy::before { content: map-get($bootstrap-icons-map, "trophy"); } +.bi-tropical-storm::before { content: map-get($bootstrap-icons-map, "tropical-storm"); } +.bi-truck-flatbed::before { content: map-get($bootstrap-icons-map, "truck-flatbed"); } +.bi-truck::before { content: map-get($bootstrap-icons-map, "truck"); } +.bi-tsunami::before { content: map-get($bootstrap-icons-map, "tsunami"); } +.bi-tv-fill::before { content: map-get($bootstrap-icons-map, "tv-fill"); } +.bi-tv::before { content: map-get($bootstrap-icons-map, "tv"); } +.bi-twitch::before { content: map-get($bootstrap-icons-map, "twitch"); } +.bi-twitter::before { content: map-get($bootstrap-icons-map, "twitter"); } +.bi-type-bold::before { content: map-get($bootstrap-icons-map, "type-bold"); } +.bi-type-h1::before { content: map-get($bootstrap-icons-map, "type-h1"); } +.bi-type-h2::before { content: map-get($bootstrap-icons-map, "type-h2"); } +.bi-type-h3::before { content: map-get($bootstrap-icons-map, "type-h3"); } +.bi-type-italic::before { content: map-get($bootstrap-icons-map, "type-italic"); } +.bi-type-strikethrough::before { content: map-get($bootstrap-icons-map, "type-strikethrough"); } +.bi-type-underline::before { content: map-get($bootstrap-icons-map, "type-underline"); } +.bi-type::before { content: map-get($bootstrap-icons-map, "type"); } +.bi-ui-checks-grid::before { content: map-get($bootstrap-icons-map, "ui-checks-grid"); } +.bi-ui-checks::before { content: map-get($bootstrap-icons-map, "ui-checks"); } +.bi-ui-radios-grid::before { content: map-get($bootstrap-icons-map, "ui-radios-grid"); } +.bi-ui-radios::before { content: map-get($bootstrap-icons-map, "ui-radios"); } +.bi-umbrella-fill::before { content: map-get($bootstrap-icons-map, "umbrella-fill"); } +.bi-umbrella::before { content: map-get($bootstrap-icons-map, "umbrella"); } +.bi-union::before { content: map-get($bootstrap-icons-map, "union"); } +.bi-unlock-fill::before { content: map-get($bootstrap-icons-map, "unlock-fill"); } +.bi-unlock::before { content: map-get($bootstrap-icons-map, "unlock"); } +.bi-upc-scan::before { content: map-get($bootstrap-icons-map, "upc-scan"); } +.bi-upc::before { content: map-get($bootstrap-icons-map, "upc"); } +.bi-upload::before { content: map-get($bootstrap-icons-map, "upload"); } +.bi-vector-pen::before { content: map-get($bootstrap-icons-map, "vector-pen"); } +.bi-view-list::before { content: map-get($bootstrap-icons-map, "view-list"); } +.bi-view-stacked::before { content: map-get($bootstrap-icons-map, "view-stacked"); } +.bi-vinyl-fill::before { content: map-get($bootstrap-icons-map, "vinyl-fill"); } +.bi-vinyl::before { content: map-get($bootstrap-icons-map, "vinyl"); } +.bi-voicemail::before { content: map-get($bootstrap-icons-map, "voicemail"); } +.bi-volume-down-fill::before { content: map-get($bootstrap-icons-map, "volume-down-fill"); } +.bi-volume-down::before { content: map-get($bootstrap-icons-map, "volume-down"); } +.bi-volume-mute-fill::before { content: map-get($bootstrap-icons-map, "volume-mute-fill"); } +.bi-volume-mute::before { content: map-get($bootstrap-icons-map, "volume-mute"); } +.bi-volume-off-fill::before { content: map-get($bootstrap-icons-map, "volume-off-fill"); } +.bi-volume-off::before { content: map-get($bootstrap-icons-map, "volume-off"); } +.bi-volume-up-fill::before { content: map-get($bootstrap-icons-map, "volume-up-fill"); } +.bi-volume-up::before { content: map-get($bootstrap-icons-map, "volume-up"); } +.bi-vr::before { content: map-get($bootstrap-icons-map, "vr"); } +.bi-wallet-fill::before { content: map-get($bootstrap-icons-map, "wallet-fill"); } +.bi-wallet::before { content: map-get($bootstrap-icons-map, "wallet"); } +.bi-wallet2::before { content: map-get($bootstrap-icons-map, "wallet2"); } +.bi-watch::before { content: map-get($bootstrap-icons-map, "watch"); } +.bi-water::before { content: map-get($bootstrap-icons-map, "water"); } +.bi-whatsapp::before { content: map-get($bootstrap-icons-map, "whatsapp"); } +.bi-wifi-1::before { content: map-get($bootstrap-icons-map, "wifi-1"); } +.bi-wifi-2::before { content: map-get($bootstrap-icons-map, "wifi-2"); } +.bi-wifi-off::before { content: map-get($bootstrap-icons-map, "wifi-off"); } +.bi-wifi::before { content: map-get($bootstrap-icons-map, "wifi"); } +.bi-wind::before { content: map-get($bootstrap-icons-map, "wind"); } +.bi-window-dock::before { content: map-get($bootstrap-icons-map, "window-dock"); } +.bi-window-sidebar::before { content: map-get($bootstrap-icons-map, "window-sidebar"); } +.bi-window::before { content: map-get($bootstrap-icons-map, "window"); } +.bi-wrench::before { content: map-get($bootstrap-icons-map, "wrench"); } +.bi-x-circle-fill::before { content: map-get($bootstrap-icons-map, "x-circle-fill"); } +.bi-x-circle::before { content: map-get($bootstrap-icons-map, "x-circle"); } +.bi-x-diamond-fill::before { content: map-get($bootstrap-icons-map, "x-diamond-fill"); } +.bi-x-diamond::before { content: map-get($bootstrap-icons-map, "x-diamond"); } +.bi-x-octagon-fill::before { content: map-get($bootstrap-icons-map, "x-octagon-fill"); } +.bi-x-octagon::before { content: map-get($bootstrap-icons-map, "x-octagon"); } +.bi-x-square-fill::before { content: map-get($bootstrap-icons-map, "x-square-fill"); } +.bi-x-square::before { content: map-get($bootstrap-icons-map, "x-square"); } +.bi-x::before { content: map-get($bootstrap-icons-map, "x"); } +.bi-youtube::before { content: map-get($bootstrap-icons-map, "youtube"); } +.bi-zoom-in::before { content: map-get($bootstrap-icons-map, "zoom-in"); } +.bi-zoom-out::before { content: map-get($bootstrap-icons-map, "zoom-out"); } +.bi-bank::before { content: map-get($bootstrap-icons-map, "bank"); } +.bi-bank2::before { content: map-get($bootstrap-icons-map, "bank2"); } +.bi-bell-slash-fill::before { content: map-get($bootstrap-icons-map, "bell-slash-fill"); } +.bi-bell-slash::before { content: map-get($bootstrap-icons-map, "bell-slash"); } +.bi-cash-coin::before { content: map-get($bootstrap-icons-map, "cash-coin"); } +.bi-check-lg::before { content: map-get($bootstrap-icons-map, "check-lg"); } +.bi-coin::before { content: map-get($bootstrap-icons-map, "coin"); } +.bi-currency-bitcoin::before { content: map-get($bootstrap-icons-map, "currency-bitcoin"); } +.bi-currency-dollar::before { content: map-get($bootstrap-icons-map, "currency-dollar"); } +.bi-currency-euro::before { content: map-get($bootstrap-icons-map, "currency-euro"); } +.bi-currency-exchange::before { content: map-get($bootstrap-icons-map, "currency-exchange"); } +.bi-currency-pound::before { content: map-get($bootstrap-icons-map, "currency-pound"); } +.bi-currency-yen::before { content: map-get($bootstrap-icons-map, "currency-yen"); } +.bi-dash-lg::before { content: map-get($bootstrap-icons-map, "dash-lg"); } +.bi-exclamation-lg::before { content: map-get($bootstrap-icons-map, "exclamation-lg"); } +.bi-file-earmark-pdf-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-pdf-fill"); } +.bi-file-earmark-pdf::before { content: map-get($bootstrap-icons-map, "file-earmark-pdf"); } +.bi-file-pdf-fill::before { content: map-get($bootstrap-icons-map, "file-pdf-fill"); } +.bi-file-pdf::before { content: map-get($bootstrap-icons-map, "file-pdf"); } +.bi-gender-ambiguous::before { content: map-get($bootstrap-icons-map, "gender-ambiguous"); } +.bi-gender-female::before { content: map-get($bootstrap-icons-map, "gender-female"); } +.bi-gender-male::before { content: map-get($bootstrap-icons-map, "gender-male"); } +.bi-gender-trans::before { content: map-get($bootstrap-icons-map, "gender-trans"); } +.bi-headset-vr::before { content: map-get($bootstrap-icons-map, "headset-vr"); } +.bi-info-lg::before { content: map-get($bootstrap-icons-map, "info-lg"); } +.bi-mastodon::before { content: map-get($bootstrap-icons-map, "mastodon"); } +.bi-messenger::before { content: map-get($bootstrap-icons-map, "messenger"); } +.bi-piggy-bank-fill::before { content: map-get($bootstrap-icons-map, "piggy-bank-fill"); } +.bi-piggy-bank::before { content: map-get($bootstrap-icons-map, "piggy-bank"); } +.bi-pin-map-fill::before { content: map-get($bootstrap-icons-map, "pin-map-fill"); } +.bi-pin-map::before { content: map-get($bootstrap-icons-map, "pin-map"); } +.bi-plus-lg::before { content: map-get($bootstrap-icons-map, "plus-lg"); } +.bi-question-lg::before { content: map-get($bootstrap-icons-map, "question-lg"); } +.bi-recycle::before { content: map-get($bootstrap-icons-map, "recycle"); } +.bi-reddit::before { content: map-get($bootstrap-icons-map, "reddit"); } +.bi-safe-fill::before { content: map-get($bootstrap-icons-map, "safe-fill"); } +.bi-safe2-fill::before { content: map-get($bootstrap-icons-map, "safe2-fill"); } +.bi-safe2::before { content: map-get($bootstrap-icons-map, "safe2"); } +.bi-sd-card-fill::before { content: map-get($bootstrap-icons-map, "sd-card-fill"); } +.bi-sd-card::before { content: map-get($bootstrap-icons-map, "sd-card"); } +.bi-skype::before { content: map-get($bootstrap-icons-map, "skype"); } +.bi-slash-lg::before { content: map-get($bootstrap-icons-map, "slash-lg"); } +.bi-translate::before { content: map-get($bootstrap-icons-map, "translate"); } +.bi-x-lg::before { content: map-get($bootstrap-icons-map, "x-lg"); } +.bi-safe::before { content: map-get($bootstrap-icons-map, "safe"); } +.bi-apple::before { content: map-get($bootstrap-icons-map, "apple"); } +.bi-microsoft::before { content: map-get($bootstrap-icons-map, "microsoft"); } +.bi-windows::before { content: map-get($bootstrap-icons-map, "windows"); } +.bi-behance::before { content: map-get($bootstrap-icons-map, "behance"); } +.bi-dribbble::before { content: map-get($bootstrap-icons-map, "dribbble"); } +.bi-line::before { content: map-get($bootstrap-icons-map, "line"); } +.bi-medium::before { content: map-get($bootstrap-icons-map, "medium"); } +.bi-paypal::before { content: map-get($bootstrap-icons-map, "paypal"); } +.bi-pinterest::before { content: map-get($bootstrap-icons-map, "pinterest"); } +.bi-signal::before { content: map-get($bootstrap-icons-map, "signal"); } +.bi-snapchat::before { content: map-get($bootstrap-icons-map, "snapchat"); } +.bi-spotify::before { content: map-get($bootstrap-icons-map, "spotify"); } +.bi-stack-overflow::before { content: map-get($bootstrap-icons-map, "stack-overflow"); } +.bi-strava::before { content: map-get($bootstrap-icons-map, "strava"); } +.bi-wordpress::before { content: map-get($bootstrap-icons-map, "wordpress"); } +.bi-vimeo::before { content: map-get($bootstrap-icons-map, "vimeo"); } +.bi-activity::before { content: map-get($bootstrap-icons-map, "activity"); } +.bi-easel2-fill::before { content: map-get($bootstrap-icons-map, "easel2-fill"); } +.bi-easel2::before { content: map-get($bootstrap-icons-map, "easel2"); } +.bi-easel3-fill::before { content: map-get($bootstrap-icons-map, "easel3-fill"); } +.bi-easel3::before { content: map-get($bootstrap-icons-map, "easel3"); } +.bi-fan::before { content: map-get($bootstrap-icons-map, "fan"); } +.bi-fingerprint::before { content: map-get($bootstrap-icons-map, "fingerprint"); } +.bi-graph-down-arrow::before { content: map-get($bootstrap-icons-map, "graph-down-arrow"); } +.bi-graph-up-arrow::before { content: map-get($bootstrap-icons-map, "graph-up-arrow"); } +.bi-hypnotize::before { content: map-get($bootstrap-icons-map, "hypnotize"); } +.bi-magic::before { content: map-get($bootstrap-icons-map, "magic"); } +.bi-person-rolodex::before { content: map-get($bootstrap-icons-map, "person-rolodex"); } +.bi-person-video::before { content: map-get($bootstrap-icons-map, "person-video"); } +.bi-person-video2::before { content: map-get($bootstrap-icons-map, "person-video2"); } +.bi-person-video3::before { content: map-get($bootstrap-icons-map, "person-video3"); } +.bi-person-workspace::before { content: map-get($bootstrap-icons-map, "person-workspace"); } +.bi-radioactive::before { content: map-get($bootstrap-icons-map, "radioactive"); } +.bi-webcam-fill::before { content: map-get($bootstrap-icons-map, "webcam-fill"); } +.bi-webcam::before { content: map-get($bootstrap-icons-map, "webcam"); } +.bi-yin-yang::before { content: map-get($bootstrap-icons-map, "yin-yang"); } +.bi-bandaid-fill::before { content: map-get($bootstrap-icons-map, "bandaid-fill"); } +.bi-bandaid::before { content: map-get($bootstrap-icons-map, "bandaid"); } +.bi-bluetooth::before { content: map-get($bootstrap-icons-map, "bluetooth"); } +.bi-body-text::before { content: map-get($bootstrap-icons-map, "body-text"); } +.bi-boombox::before { content: map-get($bootstrap-icons-map, "boombox"); } +.bi-boxes::before { content: map-get($bootstrap-icons-map, "boxes"); } +.bi-dpad-fill::before { content: map-get($bootstrap-icons-map, "dpad-fill"); } +.bi-dpad::before { content: map-get($bootstrap-icons-map, "dpad"); } +.bi-ear-fill::before { content: map-get($bootstrap-icons-map, "ear-fill"); } +.bi-ear::before { content: map-get($bootstrap-icons-map, "ear"); } +.bi-envelope-check-1::before { content: map-get($bootstrap-icons-map, "envelope-check-1"); } +.bi-envelope-check-fill::before { content: map-get($bootstrap-icons-map, "envelope-check-fill"); } +.bi-envelope-check::before { content: map-get($bootstrap-icons-map, "envelope-check"); } +.bi-envelope-dash-1::before { content: map-get($bootstrap-icons-map, "envelope-dash-1"); } +.bi-envelope-dash-fill::before { content: map-get($bootstrap-icons-map, "envelope-dash-fill"); } +.bi-envelope-dash::before { content: map-get($bootstrap-icons-map, "envelope-dash"); } +.bi-envelope-exclamation-1::before { content: map-get($bootstrap-icons-map, "envelope-exclamation-1"); } +.bi-envelope-exclamation-fill::before { content: map-get($bootstrap-icons-map, "envelope-exclamation-fill"); } +.bi-envelope-exclamation::before { content: map-get($bootstrap-icons-map, "envelope-exclamation"); } +.bi-envelope-plus-fill::before { content: map-get($bootstrap-icons-map, "envelope-plus-fill"); } +.bi-envelope-plus::before { content: map-get($bootstrap-icons-map, "envelope-plus"); } +.bi-envelope-slash-1::before { content: map-get($bootstrap-icons-map, "envelope-slash-1"); } +.bi-envelope-slash-fill::before { content: map-get($bootstrap-icons-map, "envelope-slash-fill"); } +.bi-envelope-slash::before { content: map-get($bootstrap-icons-map, "envelope-slash"); } +.bi-envelope-x-1::before { content: map-get($bootstrap-icons-map, "envelope-x-1"); } +.bi-envelope-x-fill::before { content: map-get($bootstrap-icons-map, "envelope-x-fill"); } +.bi-envelope-x::before { content: map-get($bootstrap-icons-map, "envelope-x"); } +.bi-explicit-fill::before { content: map-get($bootstrap-icons-map, "explicit-fill"); } +.bi-explicit::before { content: map-get($bootstrap-icons-map, "explicit"); } +.bi-git::before { content: map-get($bootstrap-icons-map, "git"); } +.bi-infinity::before { content: map-get($bootstrap-icons-map, "infinity"); } +.bi-list-columns-reverse::before { content: map-get($bootstrap-icons-map, "list-columns-reverse"); } +.bi-list-columns::before { content: map-get($bootstrap-icons-map, "list-columns"); } +.bi-meta::before { content: map-get($bootstrap-icons-map, "meta"); } +.bi-mortorboard-fill::before { content: map-get($bootstrap-icons-map, "mortorboard-fill"); } +.bi-mortorboard::before { content: map-get($bootstrap-icons-map, "mortorboard"); } +.bi-nintendo-switch::before { content: map-get($bootstrap-icons-map, "nintendo-switch"); } +.bi-pc-display-horizontal::before { content: map-get($bootstrap-icons-map, "pc-display-horizontal"); } +.bi-pc-display::before { content: map-get($bootstrap-icons-map, "pc-display"); } +.bi-pc-horizontal::before { content: map-get($bootstrap-icons-map, "pc-horizontal"); } +.bi-pc::before { content: map-get($bootstrap-icons-map, "pc"); } +.bi-playstation::before { content: map-get($bootstrap-icons-map, "playstation"); } +.bi-plus-slash-minus::before { content: map-get($bootstrap-icons-map, "plus-slash-minus"); } +.bi-projector-fill::before { content: map-get($bootstrap-icons-map, "projector-fill"); } +.bi-projector::before { content: map-get($bootstrap-icons-map, "projector"); } +.bi-qr-code-scan::before { content: map-get($bootstrap-icons-map, "qr-code-scan"); } +.bi-qr-code::before { content: map-get($bootstrap-icons-map, "qr-code"); } +.bi-quora::before { content: map-get($bootstrap-icons-map, "quora"); } +.bi-quote::before { content: map-get($bootstrap-icons-map, "quote"); } +.bi-robot::before { content: map-get($bootstrap-icons-map, "robot"); } +.bi-send-check-fill::before { content: map-get($bootstrap-icons-map, "send-check-fill"); } +.bi-send-check::before { content: map-get($bootstrap-icons-map, "send-check"); } +.bi-send-dash-fill::before { content: map-get($bootstrap-icons-map, "send-dash-fill"); } +.bi-send-dash::before { content: map-get($bootstrap-icons-map, "send-dash"); } +.bi-send-exclamation-1::before { content: map-get($bootstrap-icons-map, "send-exclamation-1"); } +.bi-send-exclamation-fill::before { content: map-get($bootstrap-icons-map, "send-exclamation-fill"); } +.bi-send-exclamation::before { content: map-get($bootstrap-icons-map, "send-exclamation"); } +.bi-send-fill::before { content: map-get($bootstrap-icons-map, "send-fill"); } +.bi-send-plus-fill::before { content: map-get($bootstrap-icons-map, "send-plus-fill"); } +.bi-send-plus::before { content: map-get($bootstrap-icons-map, "send-plus"); } +.bi-send-slash-fill::before { content: map-get($bootstrap-icons-map, "send-slash-fill"); } +.bi-send-slash::before { content: map-get($bootstrap-icons-map, "send-slash"); } +.bi-send-x-fill::before { content: map-get($bootstrap-icons-map, "send-x-fill"); } +.bi-send-x::before { content: map-get($bootstrap-icons-map, "send-x"); } +.bi-send::before { content: map-get($bootstrap-icons-map, "send"); } +.bi-steam::before { content: map-get($bootstrap-icons-map, "steam"); } +.bi-terminal-dash-1::before { content: map-get($bootstrap-icons-map, "terminal-dash-1"); } +.bi-terminal-dash::before { content: map-get($bootstrap-icons-map, "terminal-dash"); } +.bi-terminal-plus::before { content: map-get($bootstrap-icons-map, "terminal-plus"); } +.bi-terminal-split::before { content: map-get($bootstrap-icons-map, "terminal-split"); } +.bi-ticket-detailed-fill::before { content: map-get($bootstrap-icons-map, "ticket-detailed-fill"); } +.bi-ticket-detailed::before { content: map-get($bootstrap-icons-map, "ticket-detailed"); } +.bi-ticket-fill::before { content: map-get($bootstrap-icons-map, "ticket-fill"); } +.bi-ticket-perforated-fill::before { content: map-get($bootstrap-icons-map, "ticket-perforated-fill"); } +.bi-ticket-perforated::before { content: map-get($bootstrap-icons-map, "ticket-perforated"); } +.bi-ticket::before { content: map-get($bootstrap-icons-map, "ticket"); } +.bi-tiktok::before { content: map-get($bootstrap-icons-map, "tiktok"); } +.bi-window-dash::before { content: map-get($bootstrap-icons-map, "window-dash"); } +.bi-window-desktop::before { content: map-get($bootstrap-icons-map, "window-desktop"); } +.bi-window-fullscreen::before { content: map-get($bootstrap-icons-map, "window-fullscreen"); } +.bi-window-plus::before { content: map-get($bootstrap-icons-map, "window-plus"); } +.bi-window-split::before { content: map-get($bootstrap-icons-map, "window-split"); } +.bi-window-stack::before { content: map-get($bootstrap-icons-map, "window-stack"); } +.bi-window-x::before { content: map-get($bootstrap-icons-map, "window-x"); } +.bi-xbox::before { content: map-get($bootstrap-icons-map, "xbox"); } +.bi-ethernet::before { content: map-get($bootstrap-icons-map, "ethernet"); } +.bi-hdmi-fill::before { content: map-get($bootstrap-icons-map, "hdmi-fill"); } +.bi-hdmi::before { content: map-get($bootstrap-icons-map, "hdmi"); } +.bi-usb-c-fill::before { content: map-get($bootstrap-icons-map, "usb-c-fill"); } +.bi-usb-c::before { content: map-get($bootstrap-icons-map, "usb-c"); } +.bi-usb-fill::before { content: map-get($bootstrap-icons-map, "usb-fill"); } +.bi-usb-plug-fill::before { content: map-get($bootstrap-icons-map, "usb-plug-fill"); } +.bi-usb-plug::before { content: map-get($bootstrap-icons-map, "usb-plug"); } +.bi-usb-symbol::before { content: map-get($bootstrap-icons-map, "usb-symbol"); } +.bi-usb::before { content: map-get($bootstrap-icons-map, "usb"); } +.bi-boombox-fill::before { content: map-get($bootstrap-icons-map, "boombox-fill"); } +.bi-displayport-1::before { content: map-get($bootstrap-icons-map, "displayport-1"); } +.bi-displayport::before { content: map-get($bootstrap-icons-map, "displayport"); } +.bi-gpu-card::before { content: map-get($bootstrap-icons-map, "gpu-card"); } +.bi-memory::before { content: map-get($bootstrap-icons-map, "memory"); } +.bi-modem-fill::before { content: map-get($bootstrap-icons-map, "modem-fill"); } +.bi-modem::before { content: map-get($bootstrap-icons-map, "modem"); } +.bi-motherboard-fill::before { content: map-get($bootstrap-icons-map, "motherboard-fill"); } +.bi-motherboard::before { content: map-get($bootstrap-icons-map, "motherboard"); } +.bi-optical-audio-fill::before { content: map-get($bootstrap-icons-map, "optical-audio-fill"); } +.bi-optical-audio::before { content: map-get($bootstrap-icons-map, "optical-audio"); } +.bi-pci-card::before { content: map-get($bootstrap-icons-map, "pci-card"); } +.bi-router-fill::before { content: map-get($bootstrap-icons-map, "router-fill"); } +.bi-router::before { content: map-get($bootstrap-icons-map, "router"); } +.bi-ssd-fill::before { content: map-get($bootstrap-icons-map, "ssd-fill"); } +.bi-ssd::before { content: map-get($bootstrap-icons-map, "ssd"); } +.bi-thunderbolt-fill::before { content: map-get($bootstrap-icons-map, "thunderbolt-fill"); } +.bi-thunderbolt::before { content: map-get($bootstrap-icons-map, "thunderbolt"); } +.bi-usb-drive-fill::before { content: map-get($bootstrap-icons-map, "usb-drive-fill"); } +.bi-usb-drive::before { content: map-get($bootstrap-icons-map, "usb-drive"); } +.bi-usb-micro-fill::before { content: map-get($bootstrap-icons-map, "usb-micro-fill"); } +.bi-usb-micro::before { content: map-get($bootstrap-icons-map, "usb-micro"); } +.bi-usb-mini-fill::before { content: map-get($bootstrap-icons-map, "usb-mini-fill"); } +.bi-usb-mini::before { content: map-get($bootstrap-icons-map, "usb-mini"); } +.bi-cloud-haze2::before { content: map-get($bootstrap-icons-map, "cloud-haze2"); } +.bi-device-hdd-fill::before { content: map-get($bootstrap-icons-map, "device-hdd-fill"); } +.bi-device-hdd::before { content: map-get($bootstrap-icons-map, "device-hdd"); } +.bi-device-ssd-fill::before { content: map-get($bootstrap-icons-map, "device-ssd-fill"); } +.bi-device-ssd::before { content: map-get($bootstrap-icons-map, "device-ssd"); } +.bi-displayport-fill::before { content: map-get($bootstrap-icons-map, "displayport-fill"); } +.bi-mortarboard-fill::before { content: map-get($bootstrap-icons-map, "mortarboard-fill"); } +.bi-mortarboard::before { content: map-get($bootstrap-icons-map, "mortarboard"); } +.bi-terminal-x::before { content: map-get($bootstrap-icons-map, "terminal-x"); } +.bi-arrow-through-heart-fill::before { content: map-get($bootstrap-icons-map, "arrow-through-heart-fill"); } +.bi-arrow-through-heart::before { content: map-get($bootstrap-icons-map, "arrow-through-heart"); } +.bi-badge-sd-fill::before { content: map-get($bootstrap-icons-map, "badge-sd-fill"); } +.bi-badge-sd::before { content: map-get($bootstrap-icons-map, "badge-sd"); } +.bi-bag-heart-fill::before { content: map-get($bootstrap-icons-map, "bag-heart-fill"); } +.bi-bag-heart::before { content: map-get($bootstrap-icons-map, "bag-heart"); } +.bi-balloon-fill::before { content: map-get($bootstrap-icons-map, "balloon-fill"); } +.bi-balloon-heart-fill::before { content: map-get($bootstrap-icons-map, "balloon-heart-fill"); } +.bi-balloon-heart::before { content: map-get($bootstrap-icons-map, "balloon-heart"); } +.bi-balloon::before { content: map-get($bootstrap-icons-map, "balloon"); } +.bi-box2-fill::before { content: map-get($bootstrap-icons-map, "box2-fill"); } +.bi-box2-heart-fill::before { content: map-get($bootstrap-icons-map, "box2-heart-fill"); } +.bi-box2-heart::before { content: map-get($bootstrap-icons-map, "box2-heart"); } +.bi-box2::before { content: map-get($bootstrap-icons-map, "box2"); } +.bi-braces-asterisk::before { content: map-get($bootstrap-icons-map, "braces-asterisk"); } +.bi-calendar-heart-fill::before { content: map-get($bootstrap-icons-map, "calendar-heart-fill"); } +.bi-calendar-heart::before { content: map-get($bootstrap-icons-map, "calendar-heart"); } +.bi-calendar2-heart-fill::before { content: map-get($bootstrap-icons-map, "calendar2-heart-fill"); } +.bi-calendar2-heart::before { content: map-get($bootstrap-icons-map, "calendar2-heart"); } +.bi-chat-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-heart-fill"); } +.bi-chat-heart::before { content: map-get($bootstrap-icons-map, "chat-heart"); } +.bi-chat-left-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-left-heart-fill"); } +.bi-chat-left-heart::before { content: map-get($bootstrap-icons-map, "chat-left-heart"); } +.bi-chat-right-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-right-heart-fill"); } +.bi-chat-right-heart::before { content: map-get($bootstrap-icons-map, "chat-right-heart"); } +.bi-chat-square-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-square-heart-fill"); } +.bi-chat-square-heart::before { content: map-get($bootstrap-icons-map, "chat-square-heart"); } +.bi-clipboard-check-fill::before { content: map-get($bootstrap-icons-map, "clipboard-check-fill"); } +.bi-clipboard-data-fill::before { content: map-get($bootstrap-icons-map, "clipboard-data-fill"); } +.bi-clipboard-fill::before { content: map-get($bootstrap-icons-map, "clipboard-fill"); } +.bi-clipboard-heart-fill::before { content: map-get($bootstrap-icons-map, "clipboard-heart-fill"); } +.bi-clipboard-heart::before { content: map-get($bootstrap-icons-map, "clipboard-heart"); } +.bi-clipboard-minus-fill::before { content: map-get($bootstrap-icons-map, "clipboard-minus-fill"); } +.bi-clipboard-plus-fill::before { content: map-get($bootstrap-icons-map, "clipboard-plus-fill"); } +.bi-clipboard-pulse::before { content: map-get($bootstrap-icons-map, "clipboard-pulse"); } +.bi-clipboard-x-fill::before { content: map-get($bootstrap-icons-map, "clipboard-x-fill"); } +.bi-clipboard2-check-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-check-fill"); } +.bi-clipboard2-check::before { content: map-get($bootstrap-icons-map, "clipboard2-check"); } +.bi-clipboard2-data-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-data-fill"); } +.bi-clipboard2-data::before { content: map-get($bootstrap-icons-map, "clipboard2-data"); } +.bi-clipboard2-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-fill"); } +.bi-clipboard2-heart-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-heart-fill"); } +.bi-clipboard2-heart::before { content: map-get($bootstrap-icons-map, "clipboard2-heart"); } +.bi-clipboard2-minus-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-minus-fill"); } +.bi-clipboard2-minus::before { content: map-get($bootstrap-icons-map, "clipboard2-minus"); } +.bi-clipboard2-plus-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-plus-fill"); } +.bi-clipboard2-plus::before { content: map-get($bootstrap-icons-map, "clipboard2-plus"); } +.bi-clipboard2-pulse-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-pulse-fill"); } +.bi-clipboard2-pulse::before { content: map-get($bootstrap-icons-map, "clipboard2-pulse"); } +.bi-clipboard2-x-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-x-fill"); } +.bi-clipboard2-x::before { content: map-get($bootstrap-icons-map, "clipboard2-x"); } +.bi-clipboard2::before { content: map-get($bootstrap-icons-map, "clipboard2"); } +.bi-emoji-kiss-fill::before { content: map-get($bootstrap-icons-map, "emoji-kiss-fill"); } +.bi-emoji-kiss::before { content: map-get($bootstrap-icons-map, "emoji-kiss"); } +.bi-envelope-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-heart-fill"); } +.bi-envelope-heart::before { content: map-get($bootstrap-icons-map, "envelope-heart"); } +.bi-envelope-open-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-open-heart-fill"); } +.bi-envelope-open-heart::before { content: map-get($bootstrap-icons-map, "envelope-open-heart"); } +.bi-envelope-paper-fill::before { content: map-get($bootstrap-icons-map, "envelope-paper-fill"); } +.bi-envelope-paper-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-paper-heart-fill"); } +.bi-envelope-paper-heart::before { content: map-get($bootstrap-icons-map, "envelope-paper-heart"); } +.bi-envelope-paper::before { content: map-get($bootstrap-icons-map, "envelope-paper"); } +.bi-filetype-aac::before { content: map-get($bootstrap-icons-map, "filetype-aac"); } +.bi-filetype-ai::before { content: map-get($bootstrap-icons-map, "filetype-ai"); } +.bi-filetype-bmp::before { content: map-get($bootstrap-icons-map, "filetype-bmp"); } +.bi-filetype-cs::before { content: map-get($bootstrap-icons-map, "filetype-cs"); } +.bi-filetype-css::before { content: map-get($bootstrap-icons-map, "filetype-css"); } +.bi-filetype-csv::before { content: map-get($bootstrap-icons-map, "filetype-csv"); } +.bi-filetype-doc::before { content: map-get($bootstrap-icons-map, "filetype-doc"); } +.bi-filetype-docx::before { content: map-get($bootstrap-icons-map, "filetype-docx"); } +.bi-filetype-exe::before { content: map-get($bootstrap-icons-map, "filetype-exe"); } +.bi-filetype-gif::before { content: map-get($bootstrap-icons-map, "filetype-gif"); } +.bi-filetype-heic::before { content: map-get($bootstrap-icons-map, "filetype-heic"); } +.bi-filetype-html::before { content: map-get($bootstrap-icons-map, "filetype-html"); } +.bi-filetype-java::before { content: map-get($bootstrap-icons-map, "filetype-java"); } +.bi-filetype-jpg::before { content: map-get($bootstrap-icons-map, "filetype-jpg"); } +.bi-filetype-js::before { content: map-get($bootstrap-icons-map, "filetype-js"); } +.bi-filetype-jsx::before { content: map-get($bootstrap-icons-map, "filetype-jsx"); } +.bi-filetype-key::before { content: map-get($bootstrap-icons-map, "filetype-key"); } +.bi-filetype-m4p::before { content: map-get($bootstrap-icons-map, "filetype-m4p"); } +.bi-filetype-md::before { content: map-get($bootstrap-icons-map, "filetype-md"); } +.bi-filetype-mdx::before { content: map-get($bootstrap-icons-map, "filetype-mdx"); } +.bi-filetype-mov::before { content: map-get($bootstrap-icons-map, "filetype-mov"); } +.bi-filetype-mp3::before { content: map-get($bootstrap-icons-map, "filetype-mp3"); } +.bi-filetype-mp4::before { content: map-get($bootstrap-icons-map, "filetype-mp4"); } +.bi-filetype-otf::before { content: map-get($bootstrap-icons-map, "filetype-otf"); } +.bi-filetype-pdf::before { content: map-get($bootstrap-icons-map, "filetype-pdf"); } +.bi-filetype-php::before { content: map-get($bootstrap-icons-map, "filetype-php"); } +.bi-filetype-png::before { content: map-get($bootstrap-icons-map, "filetype-png"); } +.bi-filetype-ppt-1::before { content: map-get($bootstrap-icons-map, "filetype-ppt-1"); } +.bi-filetype-ppt::before { content: map-get($bootstrap-icons-map, "filetype-ppt"); } +.bi-filetype-psd::before { content: map-get($bootstrap-icons-map, "filetype-psd"); } +.bi-filetype-py::before { content: map-get($bootstrap-icons-map, "filetype-py"); } +.bi-filetype-raw::before { content: map-get($bootstrap-icons-map, "filetype-raw"); } +.bi-filetype-rb::before { content: map-get($bootstrap-icons-map, "filetype-rb"); } +.bi-filetype-sass::before { content: map-get($bootstrap-icons-map, "filetype-sass"); } +.bi-filetype-scss::before { content: map-get($bootstrap-icons-map, "filetype-scss"); } +.bi-filetype-sh::before { content: map-get($bootstrap-icons-map, "filetype-sh"); } +.bi-filetype-svg::before { content: map-get($bootstrap-icons-map, "filetype-svg"); } +.bi-filetype-tiff::before { content: map-get($bootstrap-icons-map, "filetype-tiff"); } +.bi-filetype-tsx::before { content: map-get($bootstrap-icons-map, "filetype-tsx"); } +.bi-filetype-ttf::before { content: map-get($bootstrap-icons-map, "filetype-ttf"); } +.bi-filetype-txt::before { content: map-get($bootstrap-icons-map, "filetype-txt"); } +.bi-filetype-wav::before { content: map-get($bootstrap-icons-map, "filetype-wav"); } +.bi-filetype-woff::before { content: map-get($bootstrap-icons-map, "filetype-woff"); } +.bi-filetype-xls-1::before { content: map-get($bootstrap-icons-map, "filetype-xls-1"); } +.bi-filetype-xls::before { content: map-get($bootstrap-icons-map, "filetype-xls"); } +.bi-filetype-xml::before { content: map-get($bootstrap-icons-map, "filetype-xml"); } +.bi-filetype-yml::before { content: map-get($bootstrap-icons-map, "filetype-yml"); } +.bi-heart-arrow::before { content: map-get($bootstrap-icons-map, "heart-arrow"); } +.bi-heart-pulse-fill::before { content: map-get($bootstrap-icons-map, "heart-pulse-fill"); } +.bi-heart-pulse::before { content: map-get($bootstrap-icons-map, "heart-pulse"); } +.bi-heartbreak-fill::before { content: map-get($bootstrap-icons-map, "heartbreak-fill"); } +.bi-heartbreak::before { content: map-get($bootstrap-icons-map, "heartbreak"); } +.bi-hearts::before { content: map-get($bootstrap-icons-map, "hearts"); } +.bi-hospital-fill::before { content: map-get($bootstrap-icons-map, "hospital-fill"); } +.bi-hospital::before { content: map-get($bootstrap-icons-map, "hospital"); } +.bi-house-heart-fill::before { content: map-get($bootstrap-icons-map, "house-heart-fill"); } +.bi-house-heart::before { content: map-get($bootstrap-icons-map, "house-heart"); } +.bi-incognito::before { content: map-get($bootstrap-icons-map, "incognito"); } +.bi-magnet-fill::before { content: map-get($bootstrap-icons-map, "magnet-fill"); } +.bi-magnet::before { content: map-get($bootstrap-icons-map, "magnet"); } +.bi-person-heart::before { content: map-get($bootstrap-icons-map, "person-heart"); } +.bi-person-hearts::before { content: map-get($bootstrap-icons-map, "person-hearts"); } +.bi-phone-flip::before { content: map-get($bootstrap-icons-map, "phone-flip"); } +.bi-plugin::before { content: map-get($bootstrap-icons-map, "plugin"); } +.bi-postage-fill::before { content: map-get($bootstrap-icons-map, "postage-fill"); } +.bi-postage-heart-fill::before { content: map-get($bootstrap-icons-map, "postage-heart-fill"); } +.bi-postage-heart::before { content: map-get($bootstrap-icons-map, "postage-heart"); } +.bi-postage::before { content: map-get($bootstrap-icons-map, "postage"); } +.bi-postcard-fill::before { content: map-get($bootstrap-icons-map, "postcard-fill"); } +.bi-postcard-heart-fill::before { content: map-get($bootstrap-icons-map, "postcard-heart-fill"); } +.bi-postcard-heart::before { content: map-get($bootstrap-icons-map, "postcard-heart"); } +.bi-postcard::before { content: map-get($bootstrap-icons-map, "postcard"); } +.bi-search-heart-fill::before { content: map-get($bootstrap-icons-map, "search-heart-fill"); } +.bi-search-heart::before { content: map-get($bootstrap-icons-map, "search-heart"); } +.bi-sliders2-vertical::before { content: map-get($bootstrap-icons-map, "sliders2-vertical"); } +.bi-sliders2::before { content: map-get($bootstrap-icons-map, "sliders2"); } +.bi-trash3-fill::before { content: map-get($bootstrap-icons-map, "trash3-fill"); } +.bi-trash3::before { content: map-get($bootstrap-icons-map, "trash3"); } +.bi-valentine::before { content: map-get($bootstrap-icons-map, "valentine"); } +.bi-valentine2::before { content: map-get($bootstrap-icons-map, "valentine2"); } +.bi-wrench-adjustable-circle-fill::before { content: map-get($bootstrap-icons-map, "wrench-adjustable-circle-fill"); } +.bi-wrench-adjustable-circle::before { content: map-get($bootstrap-icons-map, "wrench-adjustable-circle"); } +.bi-wrench-adjustable::before { content: map-get($bootstrap-icons-map, "wrench-adjustable"); } +.bi-filetype-json::before { content: map-get($bootstrap-icons-map, "filetype-json"); } +.bi-filetype-pptx::before { content: map-get($bootstrap-icons-map, "filetype-pptx"); } +.bi-filetype-xlsx::before { content: map-get($bootstrap-icons-map, "filetype-xlsx"); } +.bi-1-circle-1::before { content: map-get($bootstrap-icons-map, "1-circle-1"); } +.bi-1-circle-fill-1::before { content: map-get($bootstrap-icons-map, "1-circle-fill-1"); } +.bi-1-circle-fill::before { content: map-get($bootstrap-icons-map, "1-circle-fill"); } +.bi-1-circle::before { content: map-get($bootstrap-icons-map, "1-circle"); } +.bi-1-square-fill::before { content: map-get($bootstrap-icons-map, "1-square-fill"); } +.bi-1-square::before { content: map-get($bootstrap-icons-map, "1-square"); } +.bi-2-circle-1::before { content: map-get($bootstrap-icons-map, "2-circle-1"); } +.bi-2-circle-fill-1::before { content: map-get($bootstrap-icons-map, "2-circle-fill-1"); } +.bi-2-circle-fill::before { content: map-get($bootstrap-icons-map, "2-circle-fill"); } +.bi-2-circle::before { content: map-get($bootstrap-icons-map, "2-circle"); } +.bi-2-square-fill::before { content: map-get($bootstrap-icons-map, "2-square-fill"); } +.bi-2-square::before { content: map-get($bootstrap-icons-map, "2-square"); } +.bi-3-circle-1::before { content: map-get($bootstrap-icons-map, "3-circle-1"); } +.bi-3-circle-fill-1::before { content: map-get($bootstrap-icons-map, "3-circle-fill-1"); } +.bi-3-circle-fill::before { content: map-get($bootstrap-icons-map, "3-circle-fill"); } +.bi-3-circle::before { content: map-get($bootstrap-icons-map, "3-circle"); } +.bi-3-square-fill::before { content: map-get($bootstrap-icons-map, "3-square-fill"); } +.bi-3-square::before { content: map-get($bootstrap-icons-map, "3-square"); } +.bi-4-circle-1::before { content: map-get($bootstrap-icons-map, "4-circle-1"); } +.bi-4-circle-fill-1::before { content: map-get($bootstrap-icons-map, "4-circle-fill-1"); } +.bi-4-circle-fill::before { content: map-get($bootstrap-icons-map, "4-circle-fill"); } +.bi-4-circle::before { content: map-get($bootstrap-icons-map, "4-circle"); } +.bi-4-square-fill::before { content: map-get($bootstrap-icons-map, "4-square-fill"); } +.bi-4-square::before { content: map-get($bootstrap-icons-map, "4-square"); } +.bi-5-circle-1::before { content: map-get($bootstrap-icons-map, "5-circle-1"); } +.bi-5-circle-fill-1::before { content: map-get($bootstrap-icons-map, "5-circle-fill-1"); } +.bi-5-circle-fill::before { content: map-get($bootstrap-icons-map, "5-circle-fill"); } +.bi-5-circle::before { content: map-get($bootstrap-icons-map, "5-circle"); } +.bi-5-square-fill::before { content: map-get($bootstrap-icons-map, "5-square-fill"); } +.bi-5-square::before { content: map-get($bootstrap-icons-map, "5-square"); } +.bi-6-circle-1::before { content: map-get($bootstrap-icons-map, "6-circle-1"); } +.bi-6-circle-fill-1::before { content: map-get($bootstrap-icons-map, "6-circle-fill-1"); } +.bi-6-circle-fill::before { content: map-get($bootstrap-icons-map, "6-circle-fill"); } +.bi-6-circle::before { content: map-get($bootstrap-icons-map, "6-circle"); } +.bi-6-square-fill::before { content: map-get($bootstrap-icons-map, "6-square-fill"); } +.bi-6-square::before { content: map-get($bootstrap-icons-map, "6-square"); } +.bi-7-circle-1::before { content: map-get($bootstrap-icons-map, "7-circle-1"); } +.bi-7-circle-fill-1::before { content: map-get($bootstrap-icons-map, "7-circle-fill-1"); } +.bi-7-circle-fill::before { content: map-get($bootstrap-icons-map, "7-circle-fill"); } +.bi-7-circle::before { content: map-get($bootstrap-icons-map, "7-circle"); } +.bi-7-square-fill::before { content: map-get($bootstrap-icons-map, "7-square-fill"); } +.bi-7-square::before { content: map-get($bootstrap-icons-map, "7-square"); } +.bi-8-circle-1::before { content: map-get($bootstrap-icons-map, "8-circle-1"); } +.bi-8-circle-fill-1::before { content: map-get($bootstrap-icons-map, "8-circle-fill-1"); } +.bi-8-circle-fill::before { content: map-get($bootstrap-icons-map, "8-circle-fill"); } +.bi-8-circle::before { content: map-get($bootstrap-icons-map, "8-circle"); } +.bi-8-square-fill::before { content: map-get($bootstrap-icons-map, "8-square-fill"); } +.bi-8-square::before { content: map-get($bootstrap-icons-map, "8-square"); } +.bi-9-circle-1::before { content: map-get($bootstrap-icons-map, "9-circle-1"); } +.bi-9-circle-fill-1::before { content: map-get($bootstrap-icons-map, "9-circle-fill-1"); } +.bi-9-circle-fill::before { content: map-get($bootstrap-icons-map, "9-circle-fill"); } +.bi-9-circle::before { content: map-get($bootstrap-icons-map, "9-circle"); } +.bi-9-square-fill::before { content: map-get($bootstrap-icons-map, "9-square-fill"); } +.bi-9-square::before { content: map-get($bootstrap-icons-map, "9-square"); } +.bi-airplane-engines-fill::before { content: map-get($bootstrap-icons-map, "airplane-engines-fill"); } +.bi-airplane-engines::before { content: map-get($bootstrap-icons-map, "airplane-engines"); } +.bi-airplane-fill::before { content: map-get($bootstrap-icons-map, "airplane-fill"); } +.bi-airplane::before { content: map-get($bootstrap-icons-map, "airplane"); } +.bi-alexa::before { content: map-get($bootstrap-icons-map, "alexa"); } +.bi-alipay::before { content: map-get($bootstrap-icons-map, "alipay"); } +.bi-android::before { content: map-get($bootstrap-icons-map, "android"); } +.bi-android2::before { content: map-get($bootstrap-icons-map, "android2"); } +.bi-box-fill::before { content: map-get($bootstrap-icons-map, "box-fill"); } +.bi-box-seam-fill::before { content: map-get($bootstrap-icons-map, "box-seam-fill"); } +.bi-browser-chrome::before { content: map-get($bootstrap-icons-map, "browser-chrome"); } +.bi-browser-edge::before { content: map-get($bootstrap-icons-map, "browser-edge"); } +.bi-browser-firefox::before { content: map-get($bootstrap-icons-map, "browser-firefox"); } +.bi-browser-safari::before { content: map-get($bootstrap-icons-map, "browser-safari"); } +.bi-c-circle-1::before { content: map-get($bootstrap-icons-map, "c-circle-1"); } +.bi-c-circle-fill-1::before { content: map-get($bootstrap-icons-map, "c-circle-fill-1"); } +.bi-c-circle-fill::before { content: map-get($bootstrap-icons-map, "c-circle-fill"); } +.bi-c-circle::before { content: map-get($bootstrap-icons-map, "c-circle"); } +.bi-c-square-fill::before { content: map-get($bootstrap-icons-map, "c-square-fill"); } +.bi-c-square::before { content: map-get($bootstrap-icons-map, "c-square"); } +.bi-capsule-pill::before { content: map-get($bootstrap-icons-map, "capsule-pill"); } +.bi-capsule::before { content: map-get($bootstrap-icons-map, "capsule"); } +.bi-car-front-fill::before { content: map-get($bootstrap-icons-map, "car-front-fill"); } +.bi-car-front::before { content: map-get($bootstrap-icons-map, "car-front"); } +.bi-cassette-fill::before { content: map-get($bootstrap-icons-map, "cassette-fill"); } +.bi-cassette::before { content: map-get($bootstrap-icons-map, "cassette"); } +.bi-cc-circle-1::before { content: map-get($bootstrap-icons-map, "cc-circle-1"); } +.bi-cc-circle-fill-1::before { content: map-get($bootstrap-icons-map, "cc-circle-fill-1"); } +.bi-cc-circle-fill::before { content: map-get($bootstrap-icons-map, "cc-circle-fill"); } +.bi-cc-circle::before { content: map-get($bootstrap-icons-map, "cc-circle"); } +.bi-cc-square-fill::before { content: map-get($bootstrap-icons-map, "cc-square-fill"); } +.bi-cc-square::before { content: map-get($bootstrap-icons-map, "cc-square"); } +.bi-cup-hot-fill::before { content: map-get($bootstrap-icons-map, "cup-hot-fill"); } +.bi-cup-hot::before { content: map-get($bootstrap-icons-map, "cup-hot"); } +.bi-currency-rupee::before { content: map-get($bootstrap-icons-map, "currency-rupee"); } +.bi-dropbox::before { content: map-get($bootstrap-icons-map, "dropbox"); } +.bi-escape::before { content: map-get($bootstrap-icons-map, "escape"); } +.bi-fast-forward-btn-fill::before { content: map-get($bootstrap-icons-map, "fast-forward-btn-fill"); } +.bi-fast-forward-btn::before { content: map-get($bootstrap-icons-map, "fast-forward-btn"); } +.bi-fast-forward-circle-fill::before { content: map-get($bootstrap-icons-map, "fast-forward-circle-fill"); } +.bi-fast-forward-circle::before { content: map-get($bootstrap-icons-map, "fast-forward-circle"); } +.bi-fast-forward-fill::before { content: map-get($bootstrap-icons-map, "fast-forward-fill"); } +.bi-fast-forward::before { content: map-get($bootstrap-icons-map, "fast-forward"); } +.bi-filetype-sql::before { content: map-get($bootstrap-icons-map, "filetype-sql"); } +.bi-fire::before { content: map-get($bootstrap-icons-map, "fire"); } +.bi-google-play::before { content: map-get($bootstrap-icons-map, "google-play"); } +.bi-h-circle-1::before { content: map-get($bootstrap-icons-map, "h-circle-1"); } +.bi-h-circle-fill-1::before { content: map-get($bootstrap-icons-map, "h-circle-fill-1"); } +.bi-h-circle-fill::before { content: map-get($bootstrap-icons-map, "h-circle-fill"); } +.bi-h-circle::before { content: map-get($bootstrap-icons-map, "h-circle"); } +.bi-h-square-fill::before { content: map-get($bootstrap-icons-map, "h-square-fill"); } +.bi-h-square::before { content: map-get($bootstrap-icons-map, "h-square"); } +.bi-indent::before { content: map-get($bootstrap-icons-map, "indent"); } +.bi-lungs-fill::before { content: map-get($bootstrap-icons-map, "lungs-fill"); } +.bi-lungs::before { content: map-get($bootstrap-icons-map, "lungs"); } +.bi-microsoft-teams::before { content: map-get($bootstrap-icons-map, "microsoft-teams"); } +.bi-p-circle-1::before { content: map-get($bootstrap-icons-map, "p-circle-1"); } +.bi-p-circle-fill-1::before { content: map-get($bootstrap-icons-map, "p-circle-fill-1"); } +.bi-p-circle-fill::before { content: map-get($bootstrap-icons-map, "p-circle-fill"); } +.bi-p-circle::before { content: map-get($bootstrap-icons-map, "p-circle"); } +.bi-p-square-fill::before { content: map-get($bootstrap-icons-map, "p-square-fill"); } +.bi-p-square::before { content: map-get($bootstrap-icons-map, "p-square"); } +.bi-pass-fill::before { content: map-get($bootstrap-icons-map, "pass-fill"); } +.bi-pass::before { content: map-get($bootstrap-icons-map, "pass"); } +.bi-prescription::before { content: map-get($bootstrap-icons-map, "prescription"); } +.bi-prescription2::before { content: map-get($bootstrap-icons-map, "prescription2"); } +.bi-r-circle-1::before { content: map-get($bootstrap-icons-map, "r-circle-1"); } +.bi-r-circle-fill-1::before { content: map-get($bootstrap-icons-map, "r-circle-fill-1"); } +.bi-r-circle-fill::before { content: map-get($bootstrap-icons-map, "r-circle-fill"); } +.bi-r-circle::before { content: map-get($bootstrap-icons-map, "r-circle"); } +.bi-r-square-fill::before { content: map-get($bootstrap-icons-map, "r-square-fill"); } +.bi-r-square::before { content: map-get($bootstrap-icons-map, "r-square"); } +.bi-repeat-1::before { content: map-get($bootstrap-icons-map, "repeat-1"); } +.bi-repeat::before { content: map-get($bootstrap-icons-map, "repeat"); } +.bi-rewind-btn-fill::before { content: map-get($bootstrap-icons-map, "rewind-btn-fill"); } +.bi-rewind-btn::before { content: map-get($bootstrap-icons-map, "rewind-btn"); } +.bi-rewind-circle-fill::before { content: map-get($bootstrap-icons-map, "rewind-circle-fill"); } +.bi-rewind-circle::before { content: map-get($bootstrap-icons-map, "rewind-circle"); } +.bi-rewind-fill::before { content: map-get($bootstrap-icons-map, "rewind-fill"); } +.bi-rewind::before { content: map-get($bootstrap-icons-map, "rewind"); } +.bi-train-freight-front-fill::before { content: map-get($bootstrap-icons-map, "train-freight-front-fill"); } +.bi-train-freight-front::before { content: map-get($bootstrap-icons-map, "train-freight-front"); } +.bi-train-front-fill::before { content: map-get($bootstrap-icons-map, "train-front-fill"); } +.bi-train-front::before { content: map-get($bootstrap-icons-map, "train-front"); } +.bi-train-lightrail-front-fill::before { content: map-get($bootstrap-icons-map, "train-lightrail-front-fill"); } +.bi-train-lightrail-front::before { content: map-get($bootstrap-icons-map, "train-lightrail-front"); } +.bi-truck-front-fill::before { content: map-get($bootstrap-icons-map, "truck-front-fill"); } +.bi-truck-front::before { content: map-get($bootstrap-icons-map, "truck-front"); } +.bi-ubuntu::before { content: map-get($bootstrap-icons-map, "ubuntu"); } +.bi-unindent::before { content: map-get($bootstrap-icons-map, "unindent"); } +.bi-unity::before { content: map-get($bootstrap-icons-map, "unity"); } +.bi-universal-access-circle::before { content: map-get($bootstrap-icons-map, "universal-access-circle"); } +.bi-universal-access::before { content: map-get($bootstrap-icons-map, "universal-access"); } +.bi-virus::before { content: map-get($bootstrap-icons-map, "virus"); } +.bi-virus2::before { content: map-get($bootstrap-icons-map, "virus2"); } +.bi-wechat::before { content: map-get($bootstrap-icons-map, "wechat"); } +.bi-yelp::before { content: map-get($bootstrap-icons-map, "yelp"); } +.bi-sign-stop-fill::before { content: map-get($bootstrap-icons-map, "sign-stop-fill"); } +.bi-sign-stop-lights-fill::before { content: map-get($bootstrap-icons-map, "sign-stop-lights-fill"); } +.bi-sign-stop-lights::before { content: map-get($bootstrap-icons-map, "sign-stop-lights"); } +.bi-sign-stop::before { content: map-get($bootstrap-icons-map, "sign-stop"); } +.bi-sign-turn-left-fill::before { content: map-get($bootstrap-icons-map, "sign-turn-left-fill"); } +.bi-sign-turn-left::before { content: map-get($bootstrap-icons-map, "sign-turn-left"); } +.bi-sign-turn-right-fill::before { content: map-get($bootstrap-icons-map, "sign-turn-right-fill"); } +.bi-sign-turn-right::before { content: map-get($bootstrap-icons-map, "sign-turn-right"); } +.bi-sign-turn-slight-left-fill::before { content: map-get($bootstrap-icons-map, "sign-turn-slight-left-fill"); } +.bi-sign-turn-slight-left::before { content: map-get($bootstrap-icons-map, "sign-turn-slight-left"); } +.bi-sign-turn-slight-right-fill::before { content: map-get($bootstrap-icons-map, "sign-turn-slight-right-fill"); } +.bi-sign-turn-slight-right::before { content: map-get($bootstrap-icons-map, "sign-turn-slight-right"); } +.bi-sign-yield-fill::before { content: map-get($bootstrap-icons-map, "sign-yield-fill"); } +.bi-sign-yield::before { content: map-get($bootstrap-icons-map, "sign-yield"); } +.bi-ev-station-fill::before { content: map-get($bootstrap-icons-map, "ev-station-fill"); } +.bi-ev-station::before { content: map-get($bootstrap-icons-map, "ev-station"); } +.bi-fuel-pump-diesel-fill::before { content: map-get($bootstrap-icons-map, "fuel-pump-diesel-fill"); } +.bi-fuel-pump-diesel::before { content: map-get($bootstrap-icons-map, "fuel-pump-diesel"); } +.bi-fuel-pump-fill::before { content: map-get($bootstrap-icons-map, "fuel-pump-fill"); } +.bi-fuel-pump::before { content: map-get($bootstrap-icons-map, "fuel-pump"); } diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.svg new file mode 100644 index 0000000..8104aea --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-reboot.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-reboot.svg new file mode 100644 index 0000000..4a184cf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap-reboot.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap.svg new file mode 100644 index 0000000..b6aed61 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bootstrap.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-all.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-all.svg new file mode 100644 index 0000000..803f5e2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-all.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-bottom.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-bottom.svg new file mode 100644 index 0000000..dbc2192 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-bottom.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-center.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-center.svg new file mode 100644 index 0000000..009b97d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-center.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-inner.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-inner.svg new file mode 100644 index 0000000..2beaa0c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-inner.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-left.svg new file mode 100644 index 0000000..69df882 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-middle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-middle.svg new file mode 100644 index 0000000..90296f9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-middle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-outer.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-outer.svg new file mode 100644 index 0000000..355e05e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-outer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-right.svg new file mode 100644 index 0000000..b0c16da --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-style.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-style.svg new file mode 100644 index 0000000..d742b2c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-style.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-top.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-top.svg new file mode 100644 index 0000000..5aab368 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-top.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border-width.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-width.svg new file mode 100644 index 0000000..0cbd0e6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border-width.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/border.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/border.svg new file mode 100644 index 0000000..0e8c9b5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/border.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bounding-box-circles.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bounding-box-circles.svg new file mode 100644 index 0000000..2e59f31 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bounding-box-circles.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bounding-box.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bounding-box.svg new file mode 100644 index 0000000..d529292 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bounding-box.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down-left.svg new file mode 100644 index 0000000..6ad3e17 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down-right.svg new file mode 100644 index 0000000..321cddf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down.svg new file mode 100644 index 0000000..9a2ca12 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down-left.svg new file mode 100644 index 0000000..76a687a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down-right.svg new file mode 100644 index 0000000..9237293 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down.svg new file mode 100644 index 0000000..90f9301 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-left.svg new file mode 100644 index 0000000..a237daf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-right.svg new file mode 100644 index 0000000..d158dae --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up-left.svg new file mode 100644 index 0000000..6937f6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up-right.svg new file mode 100644 index 0000000..8918611 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up.svg new file mode 100644 index 0000000..e6a4a7b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-in-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-left.svg new file mode 100644 index 0000000..8602603 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-right.svg new file mode 100644 index 0000000..2c4e26c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up-left.svg new file mode 100644 index 0000000..7fb0b45 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up-right.svg new file mode 100644 index 0000000..1d93acb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up.svg new file mode 100644 index 0000000..beaf334 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-fill.svg new file mode 100644 index 0000000..8cf213f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-seam-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-seam-fill.svg new file mode 100644 index 0000000..97566ab --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-seam-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box-seam.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-seam.svg new file mode 100644 index 0000000..e1506b8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box-seam.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box.svg new file mode 100644 index 0000000..58cbe2c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-fill.svg new file mode 100644 index 0000000..242ad6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-heart-fill.svg new file mode 100644 index 0000000..810e2ee --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-heart.svg new file mode 100644 index 0000000..400eb43 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box2-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/box2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/box2.svg new file mode 100644 index 0000000..6020baf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/box2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/boxes.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/boxes.svg new file mode 100644 index 0000000..b53fac8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/boxes.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/braces-asterisk.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/braces-asterisk.svg new file mode 100644 index 0000000..0a1a25b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/braces-asterisk.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/braces.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/braces.svg new file mode 100644 index 0000000..3fed8c9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/braces.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bricks.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bricks.svg new file mode 100644 index 0000000..99e2886 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bricks.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/briefcase-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/briefcase-fill.svg new file mode 100644 index 0000000..bc6150d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/briefcase-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/briefcase.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/briefcase.svg new file mode 100644 index 0000000..95d13a2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/briefcase.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-high-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-high-fill.svg new file mode 100644 index 0000000..7660658 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-high-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-high.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-high.svg new file mode 100644 index 0000000..88f5255 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-high.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-low-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-low-fill.svg new file mode 100644 index 0000000..1692df2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-low-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-low.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-low.svg new file mode 100644 index 0000000..2d68fb0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-alt-low.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-high-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-high-fill.svg new file mode 100644 index 0000000..8969e9b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-high-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-high.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-high.svg new file mode 100644 index 0000000..42b2c20 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-high.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-low-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-low-fill.svg new file mode 100644 index 0000000..29a1c3b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-low-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-low.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-low.svg new file mode 100644 index 0000000..fdd251d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brightness-low.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/broadcast-pin.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/broadcast-pin.svg new file mode 100644 index 0000000..5576e0e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/broadcast-pin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/broadcast.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/broadcast.svg new file mode 100644 index 0000000..776a237 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/broadcast.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-chrome.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-chrome.svg new file mode 100644 index 0000000..a34ab42 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-chrome.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-edge.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-edge.svg new file mode 100644 index 0000000..c8191d8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-edge.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-firefox.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-firefox.svg new file mode 100644 index 0000000..2bfdba7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-firefox.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-safari.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-safari.svg new file mode 100644 index 0000000..b304b1b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/browser-safari.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brush-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brush-fill.svg new file mode 100644 index 0000000..53ec4d6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brush-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/brush.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/brush.svg new file mode 100644 index 0000000..cc3429b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/brush.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bucket-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bucket-fill.svg new file mode 100644 index 0000000..e14f4a8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bucket-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bucket.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bucket.svg new file mode 100644 index 0000000..4911ef2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bucket.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bug-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bug-fill.svg new file mode 100644 index 0000000..bf16447 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bug-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bug.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bug.svg new file mode 100644 index 0000000..a97ffa1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bug.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/building.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/building.svg new file mode 100644 index 0000000..eb90b93 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/building.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/bullseye.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/bullseye.svg new file mode 100644 index 0000000..85a807c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/bullseye.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/c-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/c-circle-fill.svg new file mode 100644 index 0000000..0b4adad --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/c-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/c-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/c-circle.svg new file mode 100644 index 0000000..3e4e268 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/c-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/c-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/c-square-fill.svg new file mode 100644 index 0000000..0b24f73 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/c-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/c-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/c-square.svg new file mode 100644 index 0000000..822ae02 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/c-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calculator-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calculator-fill.svg new file mode 100644 index 0000000..c4ee270 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calculator-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calculator.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calculator.svg new file mode 100644 index 0000000..be8e11a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calculator.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-check-fill.svg new file mode 100644 index 0000000..76afaa2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-check.svg new file mode 100644 index 0000000..125b358 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-date-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-date-fill.svg new file mode 100644 index 0000000..37e9cb5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-date-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-date.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-date.svg new file mode 100644 index 0000000..7c53231 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-date.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-day-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-day-fill.svg new file mode 100644 index 0000000..7f1c3c1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-day-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-day.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-day.svg new file mode 100644 index 0000000..f043369 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-day.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-event-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-event-fill.svg new file mode 100644 index 0000000..844dd15 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-event-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-event.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-event.svg new file mode 100644 index 0000000..41c0ef9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-event.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-fill.svg new file mode 100644 index 0000000..0cdeb35 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-heart-fill.svg new file mode 100644 index 0000000..bed00d8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-heart.svg new file mode 100644 index 0000000..2fe7c13 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-minus-fill.svg new file mode 100644 index 0000000..f23e648 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-minus.svg new file mode 100644 index 0000000..8f970ac --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-month-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-month-fill.svg new file mode 100644 index 0000000..9123437 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-month-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-month.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-month.svg new file mode 100644 index 0000000..ad6a330 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-month.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-plus-fill.svg new file mode 100644 index 0000000..3928c63 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-plus.svg new file mode 100644 index 0000000..70746db --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-range-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-range-fill.svg new file mode 100644 index 0000000..41bb2a2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-range-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-range.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-range.svg new file mode 100644 index 0000000..934a45c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-range.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-week-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-week-fill.svg new file mode 100644 index 0000000..00930aa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-week-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-week.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-week.svg new file mode 100644 index 0000000..06d6995 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-week.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-x-fill.svg new file mode 100644 index 0000000..01be301 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-x.svg new file mode 100644 index 0000000..faf46e1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar.svg new file mode 100644 index 0000000..c8590dd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-check-fill.svg new file mode 100644 index 0000000..f49354e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-check.svg new file mode 100644 index 0000000..f826056 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-date-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-date-fill.svg new file mode 100644 index 0000000..ac005e0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-date-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-date.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-date.svg new file mode 100644 index 0000000..2dd64e8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-date.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-day-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-day-fill.svg new file mode 100644 index 0000000..2ab1b21 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-day-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-day.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-day.svg new file mode 100644 index 0000000..d4d4856 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-day.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-event-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-event-fill.svg new file mode 100644 index 0000000..5bdbc27 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-event-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-event.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-event.svg new file mode 100644 index 0000000..8c1c7cd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-event.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-fill.svg new file mode 100644 index 0000000..4b81563 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-heart-fill.svg new file mode 100644 index 0000000..a1782e3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-heart.svg new file mode 100644 index 0000000..6d66981 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-minus-fill.svg new file mode 100644 index 0000000..af87213 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-minus.svg new file mode 100644 index 0000000..eff8110 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-minus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-month-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-month-fill.svg new file mode 100644 index 0000000..58deabc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-month-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-month.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-month.svg new file mode 100644 index 0000000..88c922e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-month.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-plus-fill.svg new file mode 100644 index 0000000..8b41682 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-plus.svg new file mode 100644 index 0000000..7ec7d49 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-range-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-range-fill.svg new file mode 100644 index 0000000..39ba322 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-range-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-range.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-range.svg new file mode 100644 index 0000000..4a8d9ad --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-range.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-week-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-week-fill.svg new file mode 100644 index 0000000..8303779 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-week-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-week.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-week.svg new file mode 100644 index 0000000..835ce06 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-week.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-x-fill.svg new file mode 100644 index 0000000..2157939 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-x.svg new file mode 100644 index 0000000..e7cc339 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2.svg new file mode 100644 index 0000000..db2e06d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-event-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-event-fill.svg new file mode 100644 index 0000000..c494090 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-event-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-event.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-event.svg new file mode 100644 index 0000000..681ce4d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-event.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-fill.svg new file mode 100644 index 0000000..e37c234 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-range-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-range-fill.svg new file mode 100644 index 0000000..00875b2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-range-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-range.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-range.svg new file mode 100644 index 0000000..a452516 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-range.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-week-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-week-fill.svg new file mode 100644 index 0000000..53e5bc7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-week-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-week.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-week.svg new file mode 100644 index 0000000..e9a768c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3-week.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3.svg new file mode 100644 index 0000000..eb3c5f2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-event.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-event.svg new file mode 100644 index 0000000..51d40e8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-event.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-range.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-range.svg new file mode 100644 index 0000000..129d7c1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-range.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-week.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-week.svg new file mode 100644 index 0000000..5644238 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4-week.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4.svg new file mode 100644 index 0000000..1c62685 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/calendar4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-fill.svg new file mode 100644 index 0000000..be16451 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-reels-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-reels-fill.svg new file mode 100644 index 0000000..347f44e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-reels-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-reels.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-reels.svg new file mode 100644 index 0000000..1aa7b1c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-reels.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-fill.svg new file mode 100644 index 0000000..0222b95 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-off-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-off-fill.svg new file mode 100644 index 0000000..9909060 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-off-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-off.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-off.svg new file mode 100644 index 0000000..7635e9b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video.svg new file mode 100644 index 0000000..199e7a8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera-video.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera.svg new file mode 100644 index 0000000..fb337fe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/camera2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera2.svg new file mode 100644 index 0000000..a33ae6b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/camera2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/capslock-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/capslock-fill.svg new file mode 100644 index 0000000..e4af909 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/capslock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/capslock.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/capslock.svg new file mode 100644 index 0000000..12155de --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/capslock.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/capsule-pill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/capsule-pill.svg new file mode 100644 index 0000000..c57efff --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/capsule-pill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/capsule.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/capsule.svg new file mode 100644 index 0000000..844aa8e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/capsule.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/car-front-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/car-front-fill.svg new file mode 100644 index 0000000..e9c5204 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/car-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/car-front.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/car-front.svg new file mode 100644 index 0000000..a2ec568 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/car-front.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/card-checklist.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-checklist.svg new file mode 100644 index 0000000..ce2a553 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-checklist.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/card-heading.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-heading.svg new file mode 100644 index 0000000..682bd4e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-heading.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/card-image.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-image.svg new file mode 100644 index 0000000..473ff03 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-image.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/card-list.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-list.svg new file mode 100644 index 0000000..3dc5d42 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-list.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/card-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-text.svg new file mode 100644 index 0000000..d218f55 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/card-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-fill.svg new file mode 100644 index 0000000..d7c3990 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-square-fill.svg new file mode 100644 index 0000000..ae8fbb4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-square.svg new file mode 100644 index 0000000..cf34038 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down.svg new file mode 100644 index 0000000..026b0ff --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-fill.svg new file mode 100644 index 0000000..d989dff --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-square-fill.svg new file mode 100644 index 0000000..5d8ab56 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-square.svg new file mode 100644 index 0000000..099b54d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left.svg new file mode 100644 index 0000000..89732f0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-fill.svg new file mode 100644 index 0000000..b445551 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-square-fill.svg new file mode 100644 index 0000000..ea06657 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-square.svg new file mode 100644 index 0000000..4039064 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right.svg new file mode 100644 index 0000000..451686e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-fill.svg new file mode 100644 index 0000000..a87820e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-square-fill.svg new file mode 100644 index 0000000..25c66a5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-square.svg new file mode 100644 index 0000000..d59ecbf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up.svg new file mode 100644 index 0000000..36ca8f0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/caret-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-check-fill.svg new file mode 100644 index 0000000..019c1fc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-check.svg new file mode 100644 index 0000000..986706a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-dash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-dash-fill.svg new file mode 100644 index 0000000..2562744 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-dash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-dash.svg new file mode 100644 index 0000000..ecd23f3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-fill.svg new file mode 100644 index 0000000..a2b95bf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-plus-fill.svg new file mode 100644 index 0000000..9858fe1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-plus.svg new file mode 100644 index 0000000..acafe13 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-x-fill.svg new file mode 100644 index 0000000..a9a32ca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-x.svg new file mode 100644 index 0000000..feddfdd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart.svg new file mode 100644 index 0000000..486adb1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart2.svg new file mode 100644 index 0000000..7e1bd9a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart3.svg new file mode 100644 index 0000000..2187149 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cart4.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart4.svg new file mode 100644 index 0000000..b40891f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cart4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cash-coin.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cash-coin.svg new file mode 100644 index 0000000..bc82c64 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cash-coin.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cash-stack.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cash-stack.svg new file mode 100644 index 0000000..492cb38 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cash-stack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cash.svg new file mode 100644 index 0000000..ef3a4e7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cassette-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cassette-fill.svg new file mode 100644 index 0000000..e8dd8f1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cassette-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cassette.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cassette.svg new file mode 100644 index 0000000..c28170c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cassette.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cast.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cast.svg new file mode 100644 index 0000000..1eda173 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cast.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-circle-fill.svg new file mode 100644 index 0000000..ca9779e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-circle.svg new file mode 100644 index 0000000..6de6b76 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-square-fill.svg new file mode 100644 index 0000000..f9b44d5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-square.svg new file mode 100644 index 0000000..90c52bc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cc-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-dots-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-dots-fill.svg new file mode 100644 index 0000000..2e3d225 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-dots-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-dots.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-dots.svg new file mode 100644 index 0000000..a74267d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-dots.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-fill.svg new file mode 100644 index 0000000..69ed44b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-heart-fill.svg new file mode 100644 index 0000000..9be92ca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-heart.svg new file mode 100644 index 0000000..90c276b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-dots-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-dots-fill.svg new file mode 100644 index 0000000..eb7f531 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-dots-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-dots.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-dots.svg new file mode 100644 index 0000000..c73169d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-dots.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-fill.svg new file mode 100644 index 0000000..38c389f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-heart-fill.svg new file mode 100644 index 0000000..787ed61 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-heart.svg new file mode 100644 index 0000000..1604e7b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-quote-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-quote-fill.svg new file mode 100644 index 0000000..b115a9f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-quote-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-quote.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-quote.svg new file mode 100644 index 0000000..448827f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-text-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-text-fill.svg new file mode 100644 index 0000000..28a0f47 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-text.svg new file mode 100644 index 0000000..2b69a98 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left.svg new file mode 100644 index 0000000..fd2f4ee --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-quote-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-quote-fill.svg new file mode 100644 index 0000000..4a3af86 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-quote-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-quote.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-quote.svg new file mode 100644 index 0000000..f890c38 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-dots-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-dots-fill.svg new file mode 100644 index 0000000..49ce097 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-dots-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-dots.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-dots.svg new file mode 100644 index 0000000..423d221 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-dots.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-fill.svg new file mode 100644 index 0000000..41b767b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-heart-fill.svg new file mode 100644 index 0000000..b55dc62 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-heart.svg new file mode 100644 index 0000000..744e8a0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-quote-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-quote-fill.svg new file mode 100644 index 0000000..e63f92b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-quote-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-quote.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-quote.svg new file mode 100644 index 0000000..42c8dbe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-text-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-text-fill.svg new file mode 100644 index 0000000..32df921 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-text.svg new file mode 100644 index 0000000..d8b6004 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right.svg new file mode 100644 index 0000000..b702b5d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-dots-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-dots-fill.svg new file mode 100644 index 0000000..1025978 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-dots-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-dots.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-dots.svg new file mode 100644 index 0000000..e59cd1a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-dots.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-fill.svg new file mode 100644 index 0000000..2fb73ac --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-heart-fill.svg new file mode 100644 index 0000000..f200049 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-heart.svg new file mode 100644 index 0000000..89ca6ef --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-quote-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-quote-fill.svg new file mode 100644 index 0000000..761cb91 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-quote-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-quote.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-quote.svg new file mode 100644 index 0000000..40893f4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-text-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-text-fill.svg new file mode 100644 index 0000000..1dd17c5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-text.svg new file mode 100644 index 0000000..ae3fd8d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square.svg new file mode 100644 index 0000000..7611729 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-text-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-text-fill.svg new file mode 100644 index 0000000..fff3db3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-text.svg new file mode 100644 index 0000000..75a79f1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chat.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat.svg new file mode 100644 index 0000000..3cb81b2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chat.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check-all.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-all.svg new file mode 100644 index 0000000..b0019d0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-all.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-circle-fill.svg new file mode 100644 index 0000000..e861174 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-circle.svg new file mode 100644 index 0000000..d8dd0cd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check-lg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-lg.svg new file mode 100644 index 0000000..7afb0ae --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-square-fill.svg new file mode 100644 index 0000000..45d6828 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-square.svg new file mode 100644 index 0000000..d71c1f3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check.svg new file mode 100644 index 0000000..9de6cc7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-all.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-all.svg new file mode 100644 index 0000000..25d8ba5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-all.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-circle.svg new file mode 100644 index 0000000..7319d37 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-square.svg new file mode 100644 index 0000000..2d5e6eb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check2-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/check2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/check2.svg new file mode 100644 index 0000000..e187956 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/check2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-contract.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-contract.svg new file mode 100644 index 0000000..f12917f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-contract.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-down.svg new file mode 100644 index 0000000..4df2259 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-expand.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-expand.svg new file mode 100644 index 0000000..6cb775f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-expand.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-left.svg new file mode 100644 index 0000000..5d53406 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-right.svg new file mode 100644 index 0000000..b71553c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-up.svg new file mode 100644 index 0000000..9ca1408 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-bar-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-down.svg new file mode 100644 index 0000000..fb1767e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-left.svg new file mode 100644 index 0000000..5dd6b6b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-right.svg new file mode 100644 index 0000000..ecb5994 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-up.svg new file mode 100644 index 0000000..8bc0a55 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-compact-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-contract.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-contract.svg new file mode 100644 index 0000000..5243d43 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-contract.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-down.svg new file mode 100644 index 0000000..0df76ee --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-left.svg new file mode 100644 index 0000000..7181fd1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-right.svg new file mode 100644 index 0000000..73e1b35 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-up.svg new file mode 100644 index 0000000..5c9a013 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-double-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-down.svg new file mode 100644 index 0000000..1f0b8bc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-expand.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-expand.svg new file mode 100644 index 0000000..0a2b81a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-expand.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-left.svg new file mode 100644 index 0000000..018f8b6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-right.svg new file mode 100644 index 0000000..d621289 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-up.svg new file mode 100644 index 0000000..3b2bd42 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/chevron-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-fill.svg new file mode 100644 index 0000000..e0d1b51 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-half.svg new file mode 100644 index 0000000..5380929 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-square.svg new file mode 100644 index 0000000..37d8622 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/circle-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/circle.svg new file mode 100644 index 0000000..dc57919 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-check-fill.svg new file mode 100644 index 0000000..4c0c18f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-check.svg new file mode 100644 index 0000000..f7591ae --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-data-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-data-fill.svg new file mode 100644 index 0000000..e7de45a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-data-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-data.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-data.svg new file mode 100644 index 0000000..b4fcb33 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-data.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-fill.svg new file mode 100644 index 0000000..86d3da0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-heart-fill.svg new file mode 100644 index 0000000..c653de1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-heart.svg new file mode 100644 index 0000000..0b5b319 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-heart.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-minus-fill.svg new file mode 100644 index 0000000..7828cb8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-minus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-minus.svg new file mode 100644 index 0000000..4826c3e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-minus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-plus-fill.svg new file mode 100644 index 0000000..2ebdba4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-plus.svg new file mode 100644 index 0000000..79020c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-plus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-pulse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-pulse.svg new file mode 100644 index 0000000..0c43dab --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-pulse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-x-fill.svg new file mode 100644 index 0000000..8cba1ea --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-x-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-x.svg new file mode 100644 index 0000000..bba444d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard.svg new file mode 100644 index 0000000..360e089 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-check-fill.svg new file mode 100644 index 0000000..01aed62 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-check.svg new file mode 100644 index 0000000..c235208 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-data-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-data-fill.svg new file mode 100644 index 0000000..40656a7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-data-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-data.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-data.svg new file mode 100644 index 0000000..74b26f5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-data.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-fill.svg new file mode 100644 index 0000000..ca2df57 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-heart-fill.svg new file mode 100644 index 0000000..2abc359 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-heart.svg new file mode 100644 index 0000000..4883c3f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-heart.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-minus-fill.svg new file mode 100644 index 0000000..000a2c6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-minus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-minus.svg new file mode 100644 index 0000000..a634bb0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-minus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-plus-fill.svg new file mode 100644 index 0000000..f1702d8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-plus.svg new file mode 100644 index 0000000..474ffdc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-plus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-pulse-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-pulse-fill.svg new file mode 100644 index 0000000..5017f6d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-pulse-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-pulse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-pulse.svg new file mode 100644 index 0000000..1e6370c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-pulse.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-x-fill.svg new file mode 100644 index 0000000..8f63584 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-x-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-x.svg new file mode 100644 index 0000000..9ac8211 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2.svg new file mode 100644 index 0000000..d729ddb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clipboard2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clock-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clock-fill.svg new file mode 100644 index 0000000..189dec1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clock-history.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clock-history.svg new file mode 100644 index 0000000..414b526 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clock-history.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clock.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clock.svg new file mode 100644 index 0000000..72f2939 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-down-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-down-fill.svg new file mode 100644 index 0000000..6e18ca9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-down.svg new file mode 100644 index 0000000..cb8e33a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-up-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-up-fill.svg new file mode 100644 index 0000000..89d72fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-up.svg new file mode 100644 index 0000000..6f69abc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-check-fill.svg new file mode 100644 index 0000000..81f28b5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-check.svg new file mode 100644 index 0000000..917d5c2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-download-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-download-fill.svg new file mode 100644 index 0000000..53c4242 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-download-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-download.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-download.svg new file mode 100644 index 0000000..c6b3fe3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-download.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-drizzle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-drizzle-fill.svg new file mode 100644 index 0000000..996aec4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-drizzle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-drizzle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-drizzle.svg new file mode 100644 index 0000000..bb1e68b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-drizzle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fill.svg new file mode 100644 index 0000000..23755bd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog-fill.svg new file mode 100644 index 0000000..07f10f4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog.svg new file mode 100644 index 0000000..b40c983 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog2-fill.svg new file mode 100644 index 0000000..1d49851 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog2.svg new file mode 100644 index 0000000..1bd3c25 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-fog2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-hail-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-hail-fill.svg new file mode 100644 index 0000000..d8a096b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-hail-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-hail.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-hail.svg new file mode 100644 index 0000000..2f9bec1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-hail.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze-fill.svg new file mode 100644 index 0000000..002fc26 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze.svg new file mode 100644 index 0000000..513e346 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze2-fill.svg new file mode 100644 index 0000000..e9b7bda --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze2.svg new file mode 100644 index 0000000..c213dfb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-haze2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-fill.svg new file mode 100644 index 0000000..1d30904 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-rain-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-rain-fill.svg new file mode 100644 index 0000000..2b6d4a1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-rain-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-rain.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-rain.svg new file mode 100644 index 0000000..31badb3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning-rain.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning.svg new file mode 100644 index 0000000..5a8bafd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-lightning.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-minus-fill.svg new file mode 100644 index 0000000..753727f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-minus.svg new file mode 100644 index 0000000..a4ab6f9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-moon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-moon-fill.svg new file mode 100644 index 0000000..d968faf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-moon-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-moon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-moon.svg new file mode 100644 index 0000000..1089204 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-moon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-plus-fill.svg new file mode 100644 index 0000000..92620aa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-plus.svg new file mode 100644 index 0000000..4ef51f2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-fill.svg new file mode 100644 index 0000000..94cddba --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-heavy-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-heavy-fill.svg new file mode 100644 index 0000000..167c8af --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-heavy-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-heavy.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-heavy.svg new file mode 100644 index 0000000..a5c41e5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain-heavy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain.svg new file mode 100644 index 0000000..eb40032 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-rain.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-slash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-slash-fill.svg new file mode 100644 index 0000000..a4b8bad --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-slash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-slash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-slash.svg new file mode 100644 index 0000000..fe89178 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sleet-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sleet-fill.svg new file mode 100644 index 0000000..73764dc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sleet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sleet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sleet.svg new file mode 100644 index 0000000..d3c8f2e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sleet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-snow-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-snow-fill.svg new file mode 100644 index 0000000..0ffc577 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-snow-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-snow.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-snow.svg new file mode 100644 index 0000000..b1643fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-snow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sun-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sun-fill.svg new file mode 100644 index 0000000..9ecf7de --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sun-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sun.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sun.svg new file mode 100644 index 0000000..76ebc49 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-sun.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-upload-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-upload-fill.svg new file mode 100644 index 0000000..766015d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-upload-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-upload.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-upload.svg new file mode 100644 index 0000000..6184b72 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud-upload.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud.svg new file mode 100644 index 0000000..7b0b9b3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloud.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clouds-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clouds-fill.svg new file mode 100644 index 0000000..fe7fc07 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clouds-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/clouds.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/clouds.svg new file mode 100644 index 0000000..c9a5ba0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/clouds.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloudy-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloudy-fill.svg new file mode 100644 index 0000000..3e90f9e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloudy-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cloudy.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloudy.svg new file mode 100644 index 0000000..0783bca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cloudy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/code-slash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/code-slash.svg new file mode 100644 index 0000000..ef0ef01 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/code-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/code-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/code-square.svg new file mode 100644 index 0000000..415b56c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/code-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/code.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/code.svg new file mode 100644 index 0000000..079f5c6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/code.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/coin.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/coin.svg new file mode 100644 index 0000000..045d428 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/coin.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-fill.svg new file mode 100644 index 0000000..fee7f54 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-play-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-play-fill.svg new file mode 100644 index 0000000..2601e48 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-play-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-play.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-play.svg new file mode 100644 index 0000000..96b5c6e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/collection-play.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/collection.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/collection.svg new file mode 100644 index 0000000..0870f5a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/collection.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/columns-gap.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/columns-gap.svg new file mode 100644 index 0000000..b3cb175 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/columns-gap.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/columns.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/columns.svg new file mode 100644 index 0000000..d785491 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/columns.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/command.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/command.svg new file mode 100644 index 0000000..d162254 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/command.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/compass-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/compass-fill.svg new file mode 100644 index 0000000..ad821c4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/compass-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/compass.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/compass.svg new file mode 100644 index 0000000..8649461 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/compass.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cone-striped.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cone-striped.svg new file mode 100644 index 0000000..44e9606 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cone-striped.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cone.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cone.svg new file mode 100644 index 0000000..2de05c5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cone.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/controller.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/controller.svg new file mode 100644 index 0000000..15e7774 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/controller.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cpu-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cpu-fill.svg new file mode 100644 index 0000000..50d0a07 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cpu-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cpu.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cpu.svg new file mode 100644 index 0000000..a9fbaa3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cpu.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-back-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-back-fill.svg new file mode 100644 index 0000000..c80bb6c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-back-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-back.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-back.svg new file mode 100644 index 0000000..e99159c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-back.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-front-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-front-fill.svg new file mode 100644 index 0000000..c082ef0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-front.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-front.svg new file mode 100644 index 0000000..95b071d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-2-front.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-fill.svg new file mode 100644 index 0000000..d0686a8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card.svg new file mode 100644 index 0000000..f716d39 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/credit-card.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/crop.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/crop.svg new file mode 100644 index 0000000..b7e1749 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/crop.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-fill.svg new file mode 100644 index 0000000..c811935 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-hot-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-hot-fill.svg new file mode 100644 index 0000000..f512ae0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-hot-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-hot.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-hot.svg new file mode 100644 index 0000000..789f1ea --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-hot.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-straw.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-straw.svg new file mode 100644 index 0000000..bda9d07 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup-straw.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cup.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup.svg new file mode 100644 index 0000000..490fe09 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cup.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-bitcoin.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-bitcoin.svg new file mode 100644 index 0000000..488adca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-bitcoin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-dollar.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-dollar.svg new file mode 100644 index 0000000..572e34c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-dollar.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-euro.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-euro.svg new file mode 100644 index 0000000..1fcaa7c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-euro.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-exchange.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-exchange.svg new file mode 100644 index 0000000..1e3eaf3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-exchange.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-pound.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-pound.svg new file mode 100644 index 0000000..60dbd58 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-pound.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-rupee.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-rupee.svg new file mode 100644 index 0000000..843d0fa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-rupee.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-yen.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-yen.svg new file mode 100644 index 0000000..5bbf1a2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/currency-yen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor-fill.svg new file mode 100644 index 0000000..093372b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor-text.svg new file mode 100644 index 0000000..42a48fa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor-text.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor.svg new file mode 100644 index 0000000..315106b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/cursor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle-dotted.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle-dotted.svg new file mode 100644 index 0000000..7e29372 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle-dotted.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle-fill.svg new file mode 100644 index 0000000..db27419 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle.svg new file mode 100644 index 0000000..17483d6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-lg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-lg.svg new file mode 100644 index 0000000..0f4c5e9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square-dotted.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square-dotted.svg new file mode 100644 index 0000000..15b8d4b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square-dotted.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square-fill.svg new file mode 100644 index 0000000..85a95b2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square.svg new file mode 100644 index 0000000..b63e536 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash.svg new file mode 100644 index 0000000..4ac4288 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/device-hdd-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/device-hdd-fill.svg new file mode 100644 index 0000000..5b5ae29 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/device-hdd-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/device-hdd.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/device-hdd.svg new file mode 100644 index 0000000..960e609 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/device-hdd.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/device-ssd-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/device-ssd-fill.svg new file mode 100644 index 0000000..9ba5802 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/device-ssd-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/device-ssd.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/device-ssd.svg new file mode 100644 index 0000000..0dd8ae5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/device-ssd.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-2-fill.svg new file mode 100644 index 0000000..b46a212 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-2.svg new file mode 100644 index 0000000..2b330e5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-3-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-3-fill.svg new file mode 100644 index 0000000..6cc31c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-3.svg new file mode 100644 index 0000000..464b051 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/diagram-3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond-fill.svg new file mode 100644 index 0000000..e6e3151 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond-half.svg new file mode 100644 index 0000000..4e13791 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond.svg new file mode 100644 index 0000000..4cddafa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/diamond.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-1-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-1-fill.svg new file mode 100644 index 0000000..0b20aa0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-1-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-1.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-1.svg new file mode 100644 index 0000000..97c2432 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-1.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-2-fill.svg new file mode 100644 index 0000000..f55f921 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-2.svg new file mode 100644 index 0000000..38013a8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-3-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-3-fill.svg new file mode 100644 index 0000000..ae5a1ba --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-3.svg new file mode 100644 index 0000000..705b7e7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-4-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-4-fill.svg new file mode 100644 index 0000000..6dad92b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-4-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-4.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-4.svg new file mode 100644 index 0000000..070f981 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-4.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-5-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-5-fill.svg new file mode 100644 index 0000000..a92382b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-5-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-5.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-5.svg new file mode 100644 index 0000000..b4369c7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-5.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-6-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-6-fill.svg new file mode 100644 index 0000000..fce8cb4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-6-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-6.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-6.svg new file mode 100644 index 0000000..44d25dc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dice-6.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/disc-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/disc-fill.svg new file mode 100644 index 0000000..b03f34d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/disc-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/disc.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/disc.svg new file mode 100644 index 0000000..f3475a2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/disc.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/discord.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/discord.svg new file mode 100644 index 0000000..877cfdf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/discord.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/display-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/display-fill.svg new file mode 100644 index 0000000..f7c3fca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/display-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/display.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/display.svg new file mode 100644 index 0000000..700d780 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/display.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/displayport-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/displayport-fill.svg new file mode 100644 index 0000000..17fe771 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/displayport-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/displayport.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/displayport.svg new file mode 100644 index 0000000..3e5748a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/displayport.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/distribute-horizontal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/distribute-horizontal.svg new file mode 100644 index 0000000..fe90ff8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/distribute-horizontal.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/distribute-vertical.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/distribute-vertical.svg new file mode 100644 index 0000000..234b2c2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/distribute-vertical.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/door-closed-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/door-closed-fill.svg new file mode 100644 index 0000000..1d2a036 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/door-closed-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/door-closed.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/door-closed.svg new file mode 100644 index 0000000..3eab448 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/door-closed.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/door-open-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/door-open-fill.svg new file mode 100644 index 0000000..d4833a3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/door-open-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/door-open.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/door-open.svg new file mode 100644 index 0000000..d9638a3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/door-open.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dot.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dot.svg new file mode 100644 index 0000000..183e4a8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dot.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/download.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/download.svg new file mode 100644 index 0000000..80a5817 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/download.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dpad-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dpad-fill.svg new file mode 100644 index 0000000..ea54468 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dpad-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dpad.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dpad.svg new file mode 100644 index 0000000..9363c90 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dpad.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dribbble.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dribbble.svg new file mode 100644 index 0000000..809f2d3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dribbble.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/dropbox.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/dropbox.svg new file mode 100644 index 0000000..6431141 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/dropbox.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet-fill.svg new file mode 100644 index 0000000..a240876 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet-half.svg new file mode 100644 index 0000000..43eb208 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet-half.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet.svg new file mode 100644 index 0000000..2b405d6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/droplet.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ear-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ear-fill.svg new file mode 100644 index 0000000..8e564c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ear-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ear.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ear.svg new file mode 100644 index 0000000..8c8b869 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ear.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/earbuds.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/earbuds.svg new file mode 100644 index 0000000..7bc0019 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/earbuds.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/easel-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel-fill.svg new file mode 100644 index 0000000..db00798 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/easel.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel.svg new file mode 100644 index 0000000..f95976e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/easel2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel2-fill.svg new file mode 100644 index 0000000..c393242 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/easel2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel2.svg new file mode 100644 index 0000000..d1736de --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/easel3-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel3-fill.svg new file mode 100644 index 0000000..2e57223 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/easel3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel3.svg new file mode 100644 index 0000000..a39ad3d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/easel3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/egg-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/egg-fill.svg new file mode 100644 index 0000000..33b7d44 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/egg-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/egg-fried.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/egg-fried.svg new file mode 100644 index 0000000..b99cac3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/egg-fried.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/egg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/egg.svg new file mode 100644 index 0000000..9fb5c1e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/egg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eject-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eject-fill.svg new file mode 100644 index 0000000..3255af6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eject-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eject.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eject.svg new file mode 100644 index 0000000..540cbc8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eject.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-angry-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-angry-fill.svg new file mode 100644 index 0000000..1bf7eb6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-angry-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-angry.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-angry.svg new file mode 100644 index 0000000..d6d8914 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-angry.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-dizzy-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-dizzy-fill.svg new file mode 100644 index 0000000..d801800 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-dizzy-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-dizzy.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-dizzy.svg new file mode 100644 index 0000000..f64fade --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-dizzy.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-expressionless-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-expressionless-fill.svg new file mode 100644 index 0000000..f70140a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-expressionless-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-expressionless.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-expressionless.svg new file mode 100644 index 0000000..208a72d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-expressionless.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-frown-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-frown-fill.svg new file mode 100644 index 0000000..c8a9ddc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-frown-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-frown.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-frown.svg new file mode 100644 index 0000000..b7766eb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-frown.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-heart-eyes-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-heart-eyes-fill.svg new file mode 100644 index 0000000..cc91552 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-heart-eyes-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-heart-eyes.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-heart-eyes.svg new file mode 100644 index 0000000..c19ec51 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-heart-eyes.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-kiss-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-kiss-fill.svg new file mode 100644 index 0000000..ab46245 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-kiss-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-kiss.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-kiss.svg new file mode 100644 index 0000000..4646628 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-kiss.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-laughing-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-laughing-fill.svg new file mode 100644 index 0000000..cc8c69b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-laughing-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-laughing.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-laughing.svg new file mode 100644 index 0000000..68d9b25 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-laughing.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-neutral-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-neutral-fill.svg new file mode 100644 index 0000000..58bcb6b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-neutral-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-neutral.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-neutral.svg new file mode 100644 index 0000000..2f3204a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-neutral.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-fill.svg new file mode 100644 index 0000000..76a6a16 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-upside-down-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-upside-down-fill.svg new file mode 100644 index 0000000..c682933 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-upside-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-upside-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-upside-down.svg new file mode 100644 index 0000000..1e18424 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile-upside-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile.svg new file mode 100644 index 0000000..d222a9a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-smile.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-sunglasses-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-sunglasses-fill.svg new file mode 100644 index 0000000..00e7bc0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-sunglasses-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-sunglasses.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-sunglasses.svg new file mode 100644 index 0000000..4771e4d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-sunglasses.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-wink-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-wink-fill.svg new file mode 100644 index 0000000..8601a58 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-wink-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-wink.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-wink.svg new file mode 100644 index 0000000..ee3b3d0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/emoji-wink.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-check-fill.svg new file mode 100644 index 0000000..ca06ad0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-check.svg new file mode 100644 index 0000000..8a50181 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-dash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-dash-fill.svg new file mode 100644 index 0000000..7275d3d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-dash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-dash.svg new file mode 100644 index 0000000..7ae3e5c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-exclamation-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-exclamation-fill.svg new file mode 100644 index 0000000..4bc91d2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-exclamation-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-exclamation.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-exclamation.svg new file mode 100644 index 0000000..936b777 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-fill.svg new file mode 100644 index 0000000..0b28c86 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-heart-fill.svg new file mode 100644 index 0000000..8ed9e02 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-heart.svg new file mode 100644 index 0000000..b104999 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-fill.svg new file mode 100644 index 0000000..29d8fe7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-heart-fill.svg new file mode 100644 index 0000000..478b85b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-heart.svg new file mode 100644 index 0000000..7d324a2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open.svg new file mode 100644 index 0000000..9a542d2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-open.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-fill.svg new file mode 100644 index 0000000..14f613e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-heart-fill.svg new file mode 100644 index 0000000..e422acc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-heart.svg new file mode 100644 index 0000000..2d925ae --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper.svg new file mode 100644 index 0000000..a909c63 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-paper.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-plus-fill.svg new file mode 100644 index 0000000..96703c2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-plus.svg new file mode 100644 index 0000000..0abb966 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-slash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-slash-fill.svg new file mode 100644 index 0000000..09690e5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-slash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-slash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-slash.svg new file mode 100644 index 0000000..35b3783 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-x-fill.svg new file mode 100644 index 0000000..b8348b1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-x-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-x.svg new file mode 100644 index 0000000..cd78475 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope.svg new file mode 100644 index 0000000..122fc35 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/envelope.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eraser-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eraser-fill.svg new file mode 100644 index 0000000..10959b3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eraser-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eraser.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eraser.svg new file mode 100644 index 0000000..e7060e5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eraser.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/escape.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/escape.svg new file mode 100644 index 0000000..112c87b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/escape.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ethernet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ethernet.svg new file mode 100644 index 0000000..9b97a3a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ethernet.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ev-station-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ev-station-fill.svg new file mode 100644 index 0000000..a30f613 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ev-station-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ev-station.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ev-station.svg new file mode 100644 index 0000000..faec20c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ev-station.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-circle-fill.svg new file mode 100644 index 0000000..f7a7d17 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-circle.svg new file mode 100644 index 0000000..73c7e8d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-diamond-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-diamond-fill.svg new file mode 100644 index 0000000..5987fe7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-diamond.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-diamond.svg new file mode 100644 index 0000000..6c0388b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-diamond.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-lg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-lg.svg new file mode 100644 index 0000000..b21e727 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-octagon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-octagon-fill.svg new file mode 100644 index 0000000..3347f64 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-octagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-octagon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-octagon.svg new file mode 100644 index 0000000..6ef1db9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-octagon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-square-fill.svg new file mode 100644 index 0000000..e99eab8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-square.svg new file mode 100644 index 0000000..41436cb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-triangle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-triangle-fill.svg new file mode 100644 index 0000000..50e1752 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-triangle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-triangle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-triangle.svg new file mode 100644 index 0000000..7ca0dc7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation-triangle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation.svg new file mode 100644 index 0000000..953004b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclamation.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/exclude.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclude.svg new file mode 100644 index 0000000..9be5f93 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/exclude.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/explicit-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/explicit-fill.svg new file mode 100644 index 0000000..159d365 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/explicit-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/explicit.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/explicit.svg new file mode 100644 index 0000000..22a0ef4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/explicit.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-fill.svg new file mode 100644 index 0000000..2697206 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-slash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-slash-fill.svg new file mode 100644 index 0000000..9339262 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-slash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-slash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-slash.svg new file mode 100644 index 0000000..c520837 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eye-slash.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eye.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eye.svg new file mode 100644 index 0000000..412ff69 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eye.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eyedropper.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eyedropper.svg new file mode 100644 index 0000000..698d40d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eyedropper.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/eyeglasses.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/eyeglasses.svg new file mode 100644 index 0000000..020d943 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/eyeglasses.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/facebook.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/facebook.svg new file mode 100644 index 0000000..e8d1443 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/facebook.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fan.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fan.svg new file mode 100644 index 0000000..fab6eab --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fan.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-btn-fill.svg new file mode 100644 index 0000000..9c9a1c6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-btn.svg new file mode 100644 index 0000000..a3d605c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-circle-fill.svg new file mode 100644 index 0000000..aa5c37b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-circle.svg new file mode 100644 index 0000000..2eceb91 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-fill.svg new file mode 100644 index 0000000..329cad0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward.svg new file mode 100644 index 0000000..1064360 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fast-forward.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-down-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-down-fill.svg new file mode 100644 index 0000000..910fc07 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-down.svg new file mode 100644 index 0000000..6f75d50 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-up-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-up-fill.svg new file mode 100644 index 0000000..9dba205 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-up.svg new file mode 100644 index 0000000..223379e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-bar-graph-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-bar-graph-fill.svg new file mode 100644 index 0000000..a0e31d6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-bar-graph-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-bar-graph.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-bar-graph.svg new file mode 100644 index 0000000..e66be6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-bar-graph.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-binary-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-binary-fill.svg new file mode 100644 index 0000000..13343bf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-binary-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-binary.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-binary.svg new file mode 100644 index 0000000..7e667bc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-binary.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-break-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-break-fill.svg new file mode 100644 index 0000000..4eddc4a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-break-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-break.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-break.svg new file mode 100644 index 0000000..b4485d7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-break.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-check-fill.svg new file mode 100644 index 0000000..fb54b18 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-check.svg new file mode 100644 index 0000000..1426311 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-code-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-code-fill.svg new file mode 100644 index 0000000..ee2f0f6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-code-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-code.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-code.svg new file mode 100644 index 0000000..a8c390b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-code.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-diff-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-diff-fill.svg new file mode 100644 index 0000000..945aef1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-diff-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-diff.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-diff.svg new file mode 100644 index 0000000..dd848f0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-diff.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-down-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-down-fill.svg new file mode 100644 index 0000000..0e96047 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-down.svg new file mode 100644 index 0000000..81cc43a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-up-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-up-fill.svg new file mode 100644 index 0000000..ce881cc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-up.svg new file mode 100644 index 0000000..6cf324a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-bar-graph-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-bar-graph-fill.svg new file mode 100644 index 0000000..7dc0df9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-bar-graph-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-bar-graph.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-bar-graph.svg new file mode 100644 index 0000000..eefb687 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-bar-graph.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-binary-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-binary-fill.svg new file mode 100644 index 0000000..1652562 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-binary-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-binary.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-binary.svg new file mode 100644 index 0000000..e068bf6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-binary.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-break-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-break-fill.svg new file mode 100644 index 0000000..b36ea25 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-break-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-break.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-break.svg new file mode 100644 index 0000000..e98c647 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-break.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-check-fill.svg new file mode 100644 index 0000000..de7bf69 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-check.svg new file mode 100644 index 0000000..f2fbf66 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-code-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-code-fill.svg new file mode 100644 index 0000000..c23a7b6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-code-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-code.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-code.svg new file mode 100644 index 0000000..1b94a6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-code.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-diff-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-diff-fill.svg new file mode 100644 index 0000000..5f18a88 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-diff-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-diff.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-diff.svg new file mode 100644 index 0000000..0b28667 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-diff.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-easel-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-easel-fill.svg new file mode 100644 index 0000000..0743de4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-easel-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-easel.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-easel.svg new file mode 100644 index 0000000..045fc87 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-easel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-excel-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-excel-fill.svg new file mode 100644 index 0000000..2d492a8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-excel-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-excel.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-excel.svg new file mode 100644 index 0000000..c40f16b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-excel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-fill.svg new file mode 100644 index 0000000..668247e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-font-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-font-fill.svg new file mode 100644 index 0000000..c4fe9a4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-font-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-font.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-font.svg new file mode 100644 index 0000000..f7aad0b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-font.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-image-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-image-fill.svg new file mode 100644 index 0000000..e568ee7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-image-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-image.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-image.svg new file mode 100644 index 0000000..1e1964b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-image.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock-fill.svg new file mode 100644 index 0000000..18a7fb7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock.svg new file mode 100644 index 0000000..b15ec6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock2-fill.svg new file mode 100644 index 0000000..828a545 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock2.svg new file mode 100644 index 0000000..cf76d3f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-lock2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-medical-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-medical-fill.svg new file mode 100644 index 0000000..ed5f6bc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-medical-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-medical.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-medical.svg new file mode 100644 index 0000000..6fa8a39 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-medical.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-minus-fill.svg new file mode 100644 index 0000000..25e708f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-minus.svg new file mode 100644 index 0000000..e87b163 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-music-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-music-fill.svg new file mode 100644 index 0000000..c64c797 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-music-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-music.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-music.svg new file mode 100644 index 0000000..cc25eb9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-music.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-pdf-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-pdf-fill.svg new file mode 100644 index 0000000..0ba21ab --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-pdf-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-pdf.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-pdf.svg new file mode 100644 index 0000000..52da96f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-pdf.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-person-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-person-fill.svg new file mode 100644 index 0000000..29a8129 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-person-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-person.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-person.svg new file mode 100644 index 0000000..59a6a2a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-person.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-play-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-play-fill.svg new file mode 100644 index 0000000..80731db --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-play-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-play.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-play.svg new file mode 100644 index 0000000..62042ab --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-play.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-plus-fill.svg new file mode 100644 index 0000000..6cead3a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-plus.svg new file mode 100644 index 0000000..9284026 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-post-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-post-fill.svg new file mode 100644 index 0000000..0c0e7b8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-post-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-post.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-post.svg new file mode 100644 index 0000000..1f0d435 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-post.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ppt-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ppt-fill.svg new file mode 100644 index 0000000..68e9793 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ppt-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ppt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ppt.svg new file mode 100644 index 0000000..bedf552 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ppt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-richtext-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-richtext-fill.svg new file mode 100644 index 0000000..e5c82ee --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-richtext-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-richtext.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-richtext.svg new file mode 100644 index 0000000..35af146 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-richtext.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ruled-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ruled-fill.svg new file mode 100644 index 0000000..43aecce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ruled-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ruled.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ruled.svg new file mode 100644 index 0000000..4f28858 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-ruled.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-slides-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-slides-fill.svg new file mode 100644 index 0000000..98b59df --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-slides-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-slides.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-slides.svg new file mode 100644 index 0000000..2d97fa7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-slides.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-spreadsheet-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-spreadsheet-fill.svg new file mode 100644 index 0000000..9a71e73 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-spreadsheet-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-spreadsheet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-spreadsheet.svg new file mode 100644 index 0000000..a111232 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-spreadsheet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-text-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-text-fill.svg new file mode 100644 index 0000000..b329919 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-text.svg new file mode 100644 index 0000000..0d60c79 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-word-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-word-fill.svg new file mode 100644 index 0000000..717b049 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-word-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-word.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-word.svg new file mode 100644 index 0000000..7186b69 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-word.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-x-fill.svg new file mode 100644 index 0000000..a19d14b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-x.svg new file mode 100644 index 0000000..bedb970 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-zip-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-zip-fill.svg new file mode 100644 index 0000000..b92ff9a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-zip-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-zip.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-zip.svg new file mode 100644 index 0000000..b82afcc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark-zip.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark.svg new file mode 100644 index 0000000..c3d086b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-earmark.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-easel-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-easel-fill.svg new file mode 100644 index 0000000..e1122e5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-easel-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-easel.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-easel.svg new file mode 100644 index 0000000..c6d6a4d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-easel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-excel-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-excel-fill.svg new file mode 100644 index 0000000..350a7df --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-excel-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-excel.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-excel.svg new file mode 100644 index 0000000..0f43afe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-excel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-fill.svg new file mode 100644 index 0000000..a1f4de0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-font-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-font-fill.svg new file mode 100644 index 0000000..198a259 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-font-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-font.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-font.svg new file mode 100644 index 0000000..1d67f5e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-font.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-image-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-image-fill.svg new file mode 100644 index 0000000..f4e81ab --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-image-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-image.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-image.svg new file mode 100644 index 0000000..127fd89 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-image.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock-fill.svg new file mode 100644 index 0000000..a14dafc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock.svg new file mode 100644 index 0000000..4206978 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock2-fill.svg new file mode 100644 index 0000000..a68a5d4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock2.svg new file mode 100644 index 0000000..134f747 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-lock2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-medical-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-medical-fill.svg new file mode 100644 index 0000000..6caf0a3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-medical-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-medical.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-medical.svg new file mode 100644 index 0000000..afec18e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-medical.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-minus-fill.svg new file mode 100644 index 0000000..85d9999 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-minus.svg new file mode 100644 index 0000000..67a4538 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-music-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-music-fill.svg new file mode 100644 index 0000000..c7dfa82 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-music-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-music.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-music.svg new file mode 100644 index 0000000..6531a95 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-music.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-pdf-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-pdf-fill.svg new file mode 100644 index 0000000..87543f5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-pdf-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-pdf.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-pdf.svg new file mode 100644 index 0000000..e8ba0a1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-pdf.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-person-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-person-fill.svg new file mode 100644 index 0000000..d7e05e4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-person-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-person.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-person.svg new file mode 100644 index 0000000..892800a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-person.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-play-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-play-fill.svg new file mode 100644 index 0000000..838dda9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-play-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-play.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-play.svg new file mode 100644 index 0000000..fef9adf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-play.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-plus-fill.svg new file mode 100644 index 0000000..1730c27 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-plus.svg new file mode 100644 index 0000000..d0ef464 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-post-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-post-fill.svg new file mode 100644 index 0000000..c3fc7e0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-post-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-post.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-post.svg new file mode 100644 index 0000000..dd8aefc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-post.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ppt-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ppt-fill.svg new file mode 100644 index 0000000..3d3ac35 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ppt-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ppt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ppt.svg new file mode 100644 index 0000000..0100d0b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ppt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-richtext-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-richtext-fill.svg new file mode 100644 index 0000000..64c1fc8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-richtext-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-richtext.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-richtext.svg new file mode 100644 index 0000000..22edf68 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-richtext.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ruled-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ruled-fill.svg new file mode 100644 index 0000000..f93c255 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ruled-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ruled.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ruled.svg new file mode 100644 index 0000000..431b4eb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-ruled.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-slides-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-slides-fill.svg new file mode 100644 index 0000000..e8cb12a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-slides-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-slides.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-slides.svg new file mode 100644 index 0000000..df3f65d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-slides.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-spreadsheet-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-spreadsheet-fill.svg new file mode 100644 index 0000000..a3977e1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-spreadsheet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-spreadsheet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-spreadsheet.svg new file mode 100644 index 0000000..e83e733 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-spreadsheet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-text-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-text-fill.svg new file mode 100644 index 0000000..29c9fc4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-text.svg new file mode 100644 index 0000000..fa1e861 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-word-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-word-fill.svg new file mode 100644 index 0000000..2df1fca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-word-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-word.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-word.svg new file mode 100644 index 0000000..61a96c2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-word.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-x-fill.svg new file mode 100644 index 0000000..980e405 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-x.svg new file mode 100644 index 0000000..1fe66e6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-zip-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-zip-fill.svg new file mode 100644 index 0000000..95d3966 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-zip-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file-zip.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-zip.svg new file mode 100644 index 0000000..3da93c8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file-zip.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/file.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/file.svg new file mode 100644 index 0000000..3562fb2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/file.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/files-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/files-alt.svg new file mode 100644 index 0000000..1d4d069 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/files-alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/files.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/files.svg new file mode 100644 index 0000000..f8842f8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/files.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-aac.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-aac.svg new file mode 100644 index 0000000..8a2d02a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-aac.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ai.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ai.svg new file mode 100644 index 0000000..23e2ebc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ai.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-bmp.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-bmp.svg new file mode 100644 index 0000000..acf902f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-bmp.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-cs.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-cs.svg new file mode 100644 index 0000000..fb76aec --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-cs.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-css.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-css.svg new file mode 100644 index 0000000..da12ac6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-css.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-csv.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-csv.svg new file mode 100644 index 0000000..efda95c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-csv.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-doc.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-doc.svg new file mode 100644 index 0000000..14fb544 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-doc.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-docx.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-docx.svg new file mode 100644 index 0000000..29a54ff --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-docx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-exe.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-exe.svg new file mode 100644 index 0000000..2c4bea4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-exe.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-gif.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-gif.svg new file mode 100644 index 0000000..6b016d8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-gif.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-heic.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-heic.svg new file mode 100644 index 0000000..dcdb6f1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-heic.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-html.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-html.svg new file mode 100644 index 0000000..35d7218 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-html.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-java.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-java.svg new file mode 100644 index 0000000..c9dc543 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-java.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-jpg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-jpg.svg new file mode 100644 index 0000000..5e4ae64 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-jpg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-js.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-js.svg new file mode 100644 index 0000000..8b198bf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-js.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-json.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-json.svg new file mode 100644 index 0000000..2b9d988 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-json.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-jsx.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-jsx.svg new file mode 100644 index 0000000..c23ba4c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-jsx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-key.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-key.svg new file mode 100644 index 0000000..5b98050 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-key.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-m4p.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-m4p.svg new file mode 100644 index 0000000..a10dc24 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-m4p.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-md.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-md.svg new file mode 100644 index 0000000..ca5cd59 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-md.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mdx.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mdx.svg new file mode 100644 index 0000000..e8774d2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mdx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mov.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mov.svg new file mode 100644 index 0000000..9f05d63 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mov.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mp3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mp3.svg new file mode 100644 index 0000000..0170351 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mp3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mp4.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mp4.svg new file mode 100644 index 0000000..997c427 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-mp4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-otf.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-otf.svg new file mode 100644 index 0000000..44d0c8e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-otf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-pdf.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-pdf.svg new file mode 100644 index 0000000..e1fc9b6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-pdf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-php.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-php.svg new file mode 100644 index 0000000..422cc2d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-php.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-png.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-png.svg new file mode 100644 index 0000000..f719344 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-png.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ppt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ppt.svg new file mode 100644 index 0000000..cfaaf1b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ppt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-pptx.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-pptx.svg new file mode 100644 index 0000000..88ef369 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-pptx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-psd.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-psd.svg new file mode 100644 index 0000000..cfcb13b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-psd.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-py.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-py.svg new file mode 100644 index 0000000..654df70 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-py.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-raw.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-raw.svg new file mode 100644 index 0000000..fdbeefc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-raw.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-rb.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-rb.svg new file mode 100644 index 0000000..e3387b4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-rb.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sass.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sass.svg new file mode 100644 index 0000000..5ff5ae5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sass.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-scss.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-scss.svg new file mode 100644 index 0000000..68f195a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-scss.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sh.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sh.svg new file mode 100644 index 0000000..200fae4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sh.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sql.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sql.svg new file mode 100644 index 0000000..b523b37 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-sql.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-svg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-svg.svg new file mode 100644 index 0000000..ea1264c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-svg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-tiff.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-tiff.svg new file mode 100644 index 0000000..d6f9e9b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-tiff.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-tsx.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-tsx.svg new file mode 100644 index 0000000..cef1dc4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-tsx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ttf.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ttf.svg new file mode 100644 index 0000000..549d4df --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-ttf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-txt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-txt.svg new file mode 100644 index 0000000..6fae02a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-txt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-wav.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-wav.svg new file mode 100644 index 0000000..bd226e8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-wav.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-woff.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-woff.svg new file mode 100644 index 0000000..d8ec582 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-woff.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xls.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xls.svg new file mode 100644 index 0000000..9c266cd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xls.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xlsx.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xlsx.svg new file mode 100644 index 0000000..a1aa802 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xlsx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xml.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xml.svg new file mode 100644 index 0000000..d822645 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-xml.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-yml.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-yml.svg new file mode 100644 index 0000000..e8bf63d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filetype-yml.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/film.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/film.svg new file mode 100644 index 0000000..5cef939 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/film.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-circle-fill.svg new file mode 100644 index 0000000..f60fd59 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-circle.svg new file mode 100644 index 0000000..bbdc85f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-left.svg new file mode 100644 index 0000000..22441de --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-right.svg new file mode 100644 index 0000000..466a9b1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-square-fill.svg new file mode 100644 index 0000000..f8813b8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-square.svg new file mode 100644 index 0000000..ae8c837 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/filter.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter.svg new file mode 100644 index 0000000..555c612 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/filter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fingerprint.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fingerprint.svg new file mode 100644 index 0000000..3cf2042 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fingerprint.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fire.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fire.svg new file mode 100644 index 0000000..f702837 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fire.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/flag-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/flag-fill.svg new file mode 100644 index 0000000..73fffc2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/flag-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/flag.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/flag.svg new file mode 100644 index 0000000..357c481 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/flag.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/flower1.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/flower1.svg new file mode 100644 index 0000000..08a7e2e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/flower1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/flower2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/flower2.svg new file mode 100644 index 0000000..d793728 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/flower2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/flower3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/flower3.svg new file mode 100644 index 0000000..147e32f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/flower3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-check.svg new file mode 100644 index 0000000..d599554 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-fill.svg new file mode 100644 index 0000000..fd10c8e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-minus.svg new file mode 100644 index 0000000..f41b660 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-plus.svg new file mode 100644 index 0000000..29b5115 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-symlink-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-symlink-fill.svg new file mode 100644 index 0000000..91dc0c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-symlink-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-symlink.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-symlink.svg new file mode 100644 index 0000000..b258b6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-symlink.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-x.svg new file mode 100644 index 0000000..d571d08 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder.svg new file mode 100644 index 0000000..fd4dc5a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder2-open.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder2-open.svg new file mode 100644 index 0000000..59d8382 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder2-open.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/folder2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder2.svg new file mode 100644 index 0000000..4145753 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/folder2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts.svg new file mode 100644 index 0000000..3afc7d2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts/bootstrap-icons.woff b/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts/bootstrap-icons.woff new file mode 100644 index 0000000..cf0a6d0 Binary files /dev/null and b/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts/bootstrap-icons.woff differ diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts/bootstrap-icons.woff2 b/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts/bootstrap-icons.woff2 new file mode 100644 index 0000000..ecc8f4c Binary files /dev/null and b/src/main/resources/static/img/bootstrap-icons-1.9.1/fonts/bootstrap-icons.woff2 differ diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/forward-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/forward-fill.svg new file mode 100644 index 0000000..7f2839b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/forward-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/forward.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/forward.svg new file mode 100644 index 0000000..4b85614 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/forward.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/front.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/front.svg new file mode 100644 index 0000000..d1edeb1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/front.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-diesel-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-diesel-fill.svg new file mode 100644 index 0000000..824913c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-diesel-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-diesel.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-diesel.svg new file mode 100644 index 0000000..ad24a92 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-diesel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-fill.svg new file mode 100644 index 0000000..5154523 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump.svg new file mode 100644 index 0000000..f4742f5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fuel-pump.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fullscreen-exit.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fullscreen-exit.svg new file mode 100644 index 0000000..b9bdb1b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fullscreen-exit.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/fullscreen.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/fullscreen.svg new file mode 100644 index 0000000..7789d36 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/fullscreen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/funnel-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/funnel-fill.svg new file mode 100644 index 0000000..5f16f16 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/funnel-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/funnel.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/funnel.svg new file mode 100644 index 0000000..d027aa5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/funnel.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-fill.svg new file mode 100644 index 0000000..2aa36a1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-wide-connected.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-wide-connected.svg new file mode 100644 index 0000000..fc196dd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-wide-connected.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-wide.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-wide.svg new file mode 100644 index 0000000..83194ce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gear-wide.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gear.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gear.svg new file mode 100644 index 0000000..c11dbc1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gem.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gem.svg new file mode 100644 index 0000000..360d554 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gem.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-ambiguous.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-ambiguous.svg new file mode 100644 index 0000000..2ffaf11 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-ambiguous.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-female.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-female.svg new file mode 100644 index 0000000..102783c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-female.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-male.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-male.svg new file mode 100644 index 0000000..b0aee1d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-male.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-trans.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-trans.svg new file mode 100644 index 0000000..4c4c074 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gender-trans.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-alt-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-alt-fill.svg new file mode 100644 index 0000000..e88b77b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-alt-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-alt.svg new file mode 100644 index 0000000..4092794 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-alt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-fill.svg new file mode 100644 index 0000000..a53f2bd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/geo-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/geo.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/geo.svg new file mode 100644 index 0000000..6686fea --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/geo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gift-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gift-fill.svg new file mode 100644 index 0000000..69f3379 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gift-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gift.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gift.svg new file mode 100644 index 0000000..663b87e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gift.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/git.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/git.svg new file mode 100644 index 0000000..092d23e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/git.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/github.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/github.svg new file mode 100644 index 0000000..bb4e45c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/github.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/globe.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/globe.svg new file mode 100644 index 0000000..96cf815 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/globe.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/globe2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/globe2.svg new file mode 100644 index 0000000..150a01e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/globe2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/google-play.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/google-play.svg new file mode 100644 index 0000000..a970e9a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/google-play.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/google.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/google.svg new file mode 100644 index 0000000..47abd49 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/google.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/gpu-card.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/gpu-card.svg new file mode 100644 index 0000000..b75ddce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/gpu-card.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-down-arrow.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-down-arrow.svg new file mode 100644 index 0000000..bf522b5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-down-arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-down.svg new file mode 100644 index 0000000..55adb4f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-up-arrow.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-up-arrow.svg new file mode 100644 index 0000000..fd582e4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-up-arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-up.svg new file mode 100644 index 0000000..a68bc9d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/graph-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-1x2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-1x2-fill.svg new file mode 100644 index 0000000..1195117 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-1x2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-1x2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-1x2.svg new file mode 100644 index 0000000..dd36f54 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-1x2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2-gap-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2-gap-fill.svg new file mode 100644 index 0000000..4fe8288 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2-gap-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2-gap.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2-gap.svg new file mode 100644 index 0000000..a9e8689 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2-gap.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2.svg new file mode 100644 index 0000000..6dd39fd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3-gap-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3-gap-fill.svg new file mode 100644 index 0000000..d29616c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3-gap-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3-gap.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3-gap.svg new file mode 100644 index 0000000..675f428 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3-gap.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3.svg new file mode 100644 index 0000000..c40d98c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-3x3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-fill.svg new file mode 100644 index 0000000..202265f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grid.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid.svg new file mode 100644 index 0000000..bc50595 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grid.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grip-horizontal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grip-horizontal.svg new file mode 100644 index 0000000..c4439af --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grip-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/grip-vertical.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/grip-vertical.svg new file mode 100644 index 0000000..0182ad9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/grip-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/h-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/h-circle-fill.svg new file mode 100644 index 0000000..6a70736 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/h-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/h-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/h-circle.svg new file mode 100644 index 0000000..6579c1f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/h-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/h-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/h-square-fill.svg new file mode 100644 index 0000000..51d11d1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/h-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/h-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/h-square.svg new file mode 100644 index 0000000..2eac5d7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/h-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hammer.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hammer.svg new file mode 100644 index 0000000..d702c11 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hammer.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-fill.svg new file mode 100644 index 0000000..ef94089 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-thumb-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-thumb-fill.svg new file mode 100644 index 0000000..43e958c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-thumb-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-thumb.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-thumb.svg new file mode 100644 index 0000000..699e505 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index-thumb.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index.svg new file mode 100644 index 0000000..789622c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-index.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-down-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-down-fill.svg new file mode 100644 index 0000000..c2f51eb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-down.svg new file mode 100644 index 0000000..e8dadb5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-up-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-up-fill.svg new file mode 100644 index 0000000..e7216e1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-up.svg new file mode 100644 index 0000000..0d410a1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hand-thumbs-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/handbag-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/handbag-fill.svg new file mode 100644 index 0000000..5d4367c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/handbag-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/handbag.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/handbag.svg new file mode 100644 index 0000000..99e5904 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/handbag.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hash.svg new file mode 100644 index 0000000..4621b1d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-fill.svg new file mode 100644 index 0000000..9bdc467 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-network-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-network-fill.svg new file mode 100644 index 0000000..403d472 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-network-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-network.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-network.svg new file mode 100644 index 0000000..f0db305 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-network.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-rack-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-rack-fill.svg new file mode 100644 index 0000000..bb45078 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-rack-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-rack.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-rack.svg new file mode 100644 index 0000000..480d0d9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-rack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-stack-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-stack-fill.svg new file mode 100644 index 0000000..c81687a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-stack-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-stack.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-stack.svg new file mode 100644 index 0000000..2f74d3b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd-stack.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd.svg new file mode 100644 index 0000000..7dd6700 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdd.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdmi-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdmi-fill.svg new file mode 100644 index 0000000..9b52d61 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdmi-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hdmi.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdmi.svg new file mode 100644 index 0000000..b8a4b41 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hdmi.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/headphones.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/headphones.svg new file mode 100644 index 0000000..c2c1d6f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/headphones.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/headset-vr.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/headset-vr.svg new file mode 100644 index 0000000..9f07b76 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/headset-vr.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/headset.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/headset.svg new file mode 100644 index 0000000..5369974 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/headset.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-arrow.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-arrow.svg new file mode 100644 index 0000000..0407ed6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-fill.svg new file mode 100644 index 0000000..4026252 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-half.svg new file mode 100644 index 0000000..1474a72 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-pulse-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-pulse-fill.svg new file mode 100644 index 0000000..278e9e2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-pulse-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-pulse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-pulse.svg new file mode 100644 index 0000000..bddedce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart-pulse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart.svg new file mode 100644 index 0000000..d650006 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heartbreak-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heartbreak-fill.svg new file mode 100644 index 0000000..9c31039 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heartbreak-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heartbreak.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heartbreak.svg new file mode 100644 index 0000000..b59b4c6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heartbreak.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hearts.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hearts.svg new file mode 100644 index 0000000..c1c52e4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hearts.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon-fill.svg new file mode 100644 index 0000000..ad8e058 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon-half.svg new file mode 100644 index 0000000..5753b62 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon.svg new file mode 100644 index 0000000..e85a0bd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/heptagon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon-fill.svg new file mode 100644 index 0000000..afd7870 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon-half.svg new file mode 100644 index 0000000..a9fc136 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon.svg new file mode 100644 index 0000000..f6601f2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hexagon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hospital-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hospital-fill.svg new file mode 100644 index 0000000..a932133 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hospital-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hospital.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hospital.svg new file mode 100644 index 0000000..5168a29 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hospital.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-bottom.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-bottom.svg new file mode 100644 index 0000000..8ce8394 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-bottom.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-split.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-split.svg new file mode 100644 index 0000000..b8bba9b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-split.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-top.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-top.svg new file mode 100644 index 0000000..f471084 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass-top.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass.svg new file mode 100644 index 0000000..cecfa7e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hourglass.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/house-door-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-door-fill.svg new file mode 100644 index 0000000..ff9f4db --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-door-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/house-door.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-door.svg new file mode 100644 index 0000000..c883f34 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-door.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/house-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-fill.svg new file mode 100644 index 0000000..e782589 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/house-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-heart-fill.svg new file mode 100644 index 0000000..6d874fc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/house-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-heart.svg new file mode 100644 index 0000000..26b2395 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/house-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/house.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/house.svg new file mode 100644 index 0000000..7baa23d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/house.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hr.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hr.svg new file mode 100644 index 0000000..b6f2e33 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hr.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hurricane.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hurricane.svg new file mode 100644 index 0000000..e21aaec --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hurricane.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/hypnotize.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/hypnotize.svg new file mode 100644 index 0000000..baa2298 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/hypnotize.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/image-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/image-alt.svg new file mode 100644 index 0000000..98142b2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/image-alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/image-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/image-fill.svg new file mode 100644 index 0000000..33c40a1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/image-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/image.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/image.svg new file mode 100644 index 0000000..facacee --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/image.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/images.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/images.svg new file mode 100644 index 0000000..b35eceb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/images.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/inbox-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/inbox-fill.svg new file mode 100644 index 0000000..bf5c8c9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/inbox-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/inbox.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/inbox.svg new file mode 100644 index 0000000..59ad2d7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/inbox.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/inboxes-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/inboxes-fill.svg new file mode 100644 index 0000000..27447dc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/inboxes-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/inboxes.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/inboxes.svg new file mode 100644 index 0000000..f23f0ec --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/inboxes.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/incognito.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/incognito.svg new file mode 100644 index 0000000..fc9f6dc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/incognito.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/indent.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/indent.svg new file mode 100644 index 0000000..025acef --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/indent.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/index.html b/src/main/resources/static/img/bootstrap-icons-1.9.1/index.html new file mode 100644 index 0000000..1dd4cb1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/index.html @@ -0,0 +1,7291 @@ + + + + + bootstrap-icons + + + + + + + + +

bootstrap-icons

+ +
+
+ +
123
+
+
+ +
1-circle-fill
+
+
+ +
1-circle
+
+
+ +
1-square-fill
+
+
+ +
1-square
+
+
+ +
2-circle-fill
+
+
+ +
2-circle
+
+
+ +
2-square-fill
+
+
+ +
2-square
+
+
+ +
3-circle-fill
+
+
+ +
3-circle
+
+
+ +
3-square-fill
+
+
+ +
3-square
+
+
+ +
4-circle-fill
+
+
+ +
4-circle
+
+
+ +
4-square-fill
+
+
+ +
4-square
+
+
+ +
5-circle-fill
+
+
+ +
5-circle
+
+
+ +
5-square-fill
+
+
+ +
5-square
+
+
+ +
6-circle-fill
+
+
+ +
6-circle
+
+
+ +
6-square-fill
+
+
+ +
6-square
+
+
+ +
7-circle-fill
+
+
+ +
7-circle
+
+
+ +
7-square-fill
+
+
+ +
7-square
+
+
+ +
8-circle-fill
+
+
+ +
8-circle
+
+
+ +
8-square-fill
+
+
+ +
8-square
+
+
+ +
9-circle-fill
+
+
+ +
9-circle
+
+
+ +
9-square-fill
+
+
+ +
9-square
+
+
+ +
activity
+
+
+ +
airplane-engines-fill
+
+
+ +
airplane-engines
+
+
+ +
airplane-fill
+
+
+ +
airplane
+
+
+ +
alarm-fill
+
+
+ +
alarm
+
+
+ +
alexa
+
+
+ +
align-bottom
+
+
+ +
align-center
+
+
+ +
align-end
+
+
+ +
align-middle
+
+
+ +
align-start
+
+
+ +
align-top
+
+
+ +
alipay
+
+
+ +
alt
+
+
+ +
android
+
+
+ +
android2
+
+
+ +
app-indicator
+
+
+ +
app
+
+
+ +
apple
+
+
+ +
archive-fill
+
+
+ +
archive
+
+
+ +
arrow-90deg-down
+
+
+ +
arrow-90deg-left
+
+
+ +
arrow-90deg-right
+
+
+ +
arrow-90deg-up
+
+
+ +
arrow-bar-down
+
+
+ +
arrow-bar-left
+
+
+ +
arrow-bar-right
+
+
+ +
arrow-bar-up
+
+
+ +
arrow-clockwise
+
+
+ +
arrow-counterclockwise
+
+
+ +
arrow-down-circle-fill
+
+
+ +
arrow-down-circle
+
+
+ +
arrow-down-left-circle-fill
+
+
+ +
arrow-down-left-circle
+
+
+ +
arrow-down-left-square-fill
+
+
+ +
arrow-down-left-square
+
+
+ +
arrow-down-left
+
+
+ +
arrow-down-right-circle-fill
+
+
+ +
arrow-down-right-circle
+
+
+ +
arrow-down-right-square-fill
+
+
+ +
arrow-down-right-square
+
+
+ +
arrow-down-right
+
+
+ +
arrow-down-short
+
+
+ +
arrow-down-square-fill
+
+
+ +
arrow-down-square
+
+
+ +
arrow-down-up
+
+
+ +
arrow-down
+
+
+ +
arrow-left-circle-fill
+
+
+ +
arrow-left-circle
+
+
+ +
arrow-left-right
+
+
+ +
arrow-left-short
+
+
+ +
arrow-left-square-fill
+
+
+ +
arrow-left-square
+
+
+ +
arrow-left
+
+
+ +
arrow-repeat
+
+
+ +
arrow-return-left
+
+
+ +
arrow-return-right
+
+
+ +
arrow-right-circle-fill
+
+
+ +
arrow-right-circle
+
+
+ +
arrow-right-short
+
+
+ +
arrow-right-square-fill
+
+
+ +
arrow-right-square
+
+
+ +
arrow-right
+
+
+ +
arrow-through-heart-fill
+
+
+ +
arrow-through-heart
+
+
+ +
arrow-up-circle-fill
+
+
+ +
arrow-up-circle
+
+
+ +
arrow-up-left-circle-fill
+
+
+ +
arrow-up-left-circle
+
+
+ +
arrow-up-left-square-fill
+
+
+ +
arrow-up-left-square
+
+
+ +
arrow-up-left
+
+
+ +
arrow-up-right-circle-fill
+
+
+ +
arrow-up-right-circle
+
+
+ +
arrow-up-right-square-fill
+
+
+ +
arrow-up-right-square
+
+
+ +
arrow-up-right
+
+
+ +
arrow-up-short
+
+
+ +
arrow-up-square-fill
+
+
+ +
arrow-up-square
+
+
+ +
arrow-up
+
+
+ +
arrows-angle-contract
+
+
+ +
arrows-angle-expand
+
+
+ +
arrows-collapse
+
+
+ +
arrows-expand
+
+
+ +
arrows-fullscreen
+
+
+ +
arrows-move
+
+
+ +
aspect-ratio-fill
+
+
+ +
aspect-ratio
+
+
+ +
asterisk
+
+
+ +
at
+
+
+ +
award-fill
+
+
+ +
award
+
+
+ +
back
+
+
+ +
backspace-fill
+
+
+ +
backspace-reverse-fill
+
+
+ +
backspace-reverse
+
+
+ +
backspace
+
+
+ +
badge-3d-fill
+
+
+ +
badge-3d
+
+
+ +
badge-4k-fill
+
+
+ +
badge-4k
+
+
+ +
badge-8k-fill
+
+
+ +
badge-8k
+
+
+ +
badge-ad-fill
+
+
+ +
badge-ad
+
+
+ +
badge-ar-fill
+
+
+ +
badge-ar
+
+
+ +
badge-cc-fill
+
+
+ +
badge-cc
+
+
+ +
badge-hd-fill
+
+
+ +
badge-hd
+
+
+ +
badge-sd-fill
+
+
+ +
badge-sd
+
+
+ +
badge-tm-fill
+
+
+ +
badge-tm
+
+
+ +
badge-vo-fill
+
+
+ +
badge-vo
+
+
+ +
badge-vr-fill
+
+
+ +
badge-vr
+
+
+ +
badge-wc-fill
+
+
+ +
badge-wc
+
+
+ +
bag-check-fill
+
+
+ +
bag-check
+
+
+ +
bag-dash-fill
+
+
+ +
bag-dash
+
+
+ +
bag-fill
+
+
+ +
bag-heart-fill
+
+
+ +
bag-heart
+
+
+ +
bag-plus-fill
+
+
+ +
bag-plus
+
+
+ +
bag-x-fill
+
+
+ +
bag-x
+
+
+ +
bag
+
+
+ +
balloon-fill
+
+
+ +
balloon-heart-fill
+
+
+ +
balloon-heart
+
+
+ +
balloon
+
+
+ +
bandaid-fill
+
+
+ +
bandaid
+
+
+ +
bank
+
+
+ +
bank2
+
+
+ +
bar-chart-fill
+
+
+ +
bar-chart-line-fill
+
+
+ +
bar-chart-line
+
+
+ +
bar-chart-steps
+
+
+ +
bar-chart
+
+
+ +
basket-fill
+
+
+ +
basket
+
+
+ +
basket2-fill
+
+
+ +
basket2
+
+
+ +
basket3-fill
+
+
+ +
basket3
+
+
+ +
battery-charging
+
+
+ +
battery-full
+
+
+ +
battery-half
+
+
+ +
battery
+
+
+ +
behance
+
+
+ +
bell-fill
+
+
+ +
bell-slash-fill
+
+
+ +
bell-slash
+
+
+ +
bell
+
+
+ +
bezier
+
+
+ +
bezier2
+
+
+ +
bicycle
+
+
+ +
binoculars-fill
+
+
+ +
binoculars
+
+
+ +
blockquote-left
+
+
+ +
blockquote-right
+
+
+ +
bluetooth
+
+
+ +
body-text
+
+
+ +
book-fill
+
+
+ +
book-half
+
+
+ +
book
+
+
+ +
bookmark-check-fill
+
+
+ +
bookmark-check
+
+
+ +
bookmark-dash-fill
+
+
+ +
bookmark-dash
+
+
+ +
bookmark-fill
+
+
+ +
bookmark-heart-fill
+
+
+ +
bookmark-heart
+
+
+ +
bookmark-plus-fill
+
+
+ +
bookmark-plus
+
+
+ +
bookmark-star-fill
+
+
+ +
bookmark-star
+
+
+ +
bookmark-x-fill
+
+
+ +
bookmark-x
+
+
+ +
bookmark
+
+
+ +
bookmarks-fill
+
+
+ +
bookmarks
+
+
+ +
bookshelf
+
+
+ +
boombox-fill
+
+
+ +
boombox
+
+
+ +
bootstrap-fill
+
+
+ +
bootstrap-reboot
+
+
+ +
bootstrap
+
+
+ +
border-all
+
+
+ +
border-bottom
+
+
+ +
border-center
+
+
+ +
border-inner
+
+
+ +
border-left
+
+
+ +
border-middle
+
+
+ +
border-outer
+
+
+ +
border-right
+
+
+ +
border-style
+
+
+ +
border-top
+
+
+ +
border-width
+
+
+ +
border
+
+
+ +
bounding-box-circles
+
+
+ +
bounding-box
+
+
+ +
box-arrow-down-left
+
+
+ +
box-arrow-down-right
+
+
+ +
box-arrow-down
+
+
+ +
box-arrow-in-down-left
+
+
+ +
box-arrow-in-down-right
+
+
+ +
box-arrow-in-down
+
+
+ +
box-arrow-in-left
+
+
+ +
box-arrow-in-right
+
+
+ +
box-arrow-in-up-left
+
+
+ +
box-arrow-in-up-right
+
+
+ +
box-arrow-in-up
+
+
+ +
box-arrow-left
+
+
+ +
box-arrow-right
+
+
+ +
box-arrow-up-left
+
+
+ +
box-arrow-up-right
+
+
+ +
box-arrow-up
+
+
+ +
box-fill
+
+
+ +
box-seam-fill
+
+
+ +
box-seam
+
+
+ +
box
+
+
+ +
box2-fill
+
+
+ +
box2-heart-fill
+
+
+ +
box2-heart
+
+
+ +
box2
+
+
+ +
boxes
+
+
+ +
braces-asterisk
+
+
+ +
braces
+
+
+ +
bricks
+
+
+ +
briefcase-fill
+
+
+ +
briefcase
+
+
+ +
brightness-alt-high-fill
+
+
+ +
brightness-alt-high
+
+
+ +
brightness-alt-low-fill
+
+
+ +
brightness-alt-low
+
+
+ +
brightness-high-fill
+
+
+ +
brightness-high
+
+
+ +
brightness-low-fill
+
+
+ +
brightness-low
+
+
+ +
broadcast-pin
+
+
+ +
broadcast
+
+
+ +
browser-chrome
+
+
+ +
browser-edge
+
+
+ +
browser-firefox
+
+
+ +
browser-safari
+
+
+ +
brush-fill
+
+
+ +
brush
+
+
+ +
bucket-fill
+
+
+ +
bucket
+
+
+ +
bug-fill
+
+
+ +
bug
+
+
+ +
building
+
+
+ +
bullseye
+
+
+ +
c-circle-fill
+
+
+ +
c-circle
+
+
+ +
c-square-fill
+
+
+ +
c-square
+
+
+ +
calculator-fill
+
+
+ +
calculator
+
+
+ +
calendar-check-fill
+
+
+ +
calendar-check
+
+
+ +
calendar-date-fill
+
+
+ +
calendar-date
+
+
+ +
calendar-day-fill
+
+
+ +
calendar-day
+
+
+ +
calendar-event-fill
+
+
+ +
calendar-event
+
+
+ +
calendar-fill
+
+
+ +
calendar-heart-fill
+
+
+ +
calendar-heart
+
+
+ +
calendar-minus-fill
+
+
+ +
calendar-minus
+
+
+ +
calendar-month-fill
+
+
+ +
calendar-month
+
+
+ +
calendar-plus-fill
+
+
+ +
calendar-plus
+
+
+ +
calendar-range-fill
+
+
+ +
calendar-range
+
+
+ +
calendar-week-fill
+
+
+ +
calendar-week
+
+
+ +
calendar-x-fill
+
+
+ +
calendar-x
+
+
+ +
calendar
+
+
+ +
calendar2-check-fill
+
+
+ +
calendar2-check
+
+
+ +
calendar2-date-fill
+
+
+ +
calendar2-date
+
+
+ +
calendar2-day-fill
+
+
+ +
calendar2-day
+
+
+ +
calendar2-event-fill
+
+
+ +
calendar2-event
+
+
+ +
calendar2-fill
+
+
+ +
calendar2-heart-fill
+
+
+ +
calendar2-heart
+
+
+ +
calendar2-minus-fill
+
+
+ +
calendar2-minus
+
+
+ +
calendar2-month-fill
+
+
+ +
calendar2-month
+
+
+ +
calendar2-plus-fill
+
+
+ +
calendar2-plus
+
+
+ +
calendar2-range-fill
+
+
+ +
calendar2-range
+
+
+ +
calendar2-week-fill
+
+
+ +
calendar2-week
+
+
+ +
calendar2-x-fill
+
+
+ +
calendar2-x
+
+
+ +
calendar2
+
+
+ +
calendar3-event-fill
+
+
+ +
calendar3-event
+
+
+ +
calendar3-fill
+
+
+ +
calendar3-range-fill
+
+
+ +
calendar3-range
+
+
+ +
calendar3-week-fill
+
+
+ +
calendar3-week
+
+
+ +
calendar3
+
+
+ +
calendar4-event
+
+
+ +
calendar4-range
+
+
+ +
calendar4-week
+
+
+ +
calendar4
+
+
+ +
camera-fill
+
+
+ +
camera-reels-fill
+
+
+ +
camera-reels
+
+
+ +
camera-video-fill
+
+
+ +
camera-video-off-fill
+
+
+ +
camera-video-off
+
+
+ +
camera-video
+
+
+ +
camera
+
+
+ +
camera2
+
+
+ +
capslock-fill
+
+
+ +
capslock
+
+
+ +
capsule-pill
+
+
+ +
capsule
+
+
+ +
car-front-fill
+
+
+ +
car-front
+
+
+ +
card-checklist
+
+
+ +
card-heading
+
+
+ +
card-image
+
+
+ +
card-list
+
+
+ +
card-text
+
+
+ +
caret-down-fill
+
+
+ +
caret-down-square-fill
+
+
+ +
caret-down-square
+
+
+ +
caret-down
+
+
+ +
caret-left-fill
+
+
+ +
caret-left-square-fill
+
+
+ +
caret-left-square
+
+
+ +
caret-left
+
+
+ +
caret-right-fill
+
+
+ +
caret-right-square-fill
+
+
+ +
caret-right-square
+
+
+ +
caret-right
+
+
+ +
caret-up-fill
+
+
+ +
caret-up-square-fill
+
+
+ +
caret-up-square
+
+
+ +
caret-up
+
+
+ +
cart-check-fill
+
+
+ +
cart-check
+
+
+ +
cart-dash-fill
+
+
+ +
cart-dash
+
+
+ +
cart-fill
+
+
+ +
cart-plus-fill
+
+
+ +
cart-plus
+
+
+ +
cart-x-fill
+
+
+ +
cart-x
+
+
+ +
cart
+
+
+ +
cart2
+
+
+ +
cart3
+
+
+ +
cart4
+
+
+ +
cash-coin
+
+
+ +
cash-stack
+
+
+ +
cash
+
+
+ +
cassette-fill
+
+
+ +
cassette
+
+
+ +
cast
+
+
+ +
cc-circle-fill
+
+
+ +
cc-circle
+
+
+ +
cc-square-fill
+
+
+ +
cc-square
+
+
+ +
chat-dots-fill
+
+
+ +
chat-dots
+
+
+ +
chat-fill
+
+
+ +
chat-heart-fill
+
+
+ +
chat-heart
+
+
+ +
chat-left-dots-fill
+
+
+ +
chat-left-dots
+
+
+ +
chat-left-fill
+
+
+ +
chat-left-heart-fill
+
+
+ +
chat-left-heart
+
+
+ +
chat-left-quote-fill
+
+
+ +
chat-left-quote
+
+
+ +
chat-left-text-fill
+
+
+ +
chat-left-text
+
+
+ +
chat-left
+
+
+ +
chat-quote-fill
+
+
+ +
chat-quote
+
+
+ +
chat-right-dots-fill
+
+
+ +
chat-right-dots
+
+
+ +
chat-right-fill
+
+
+ +
chat-right-heart-fill
+
+
+ +
chat-right-heart
+
+
+ +
chat-right-quote-fill
+
+
+ +
chat-right-quote
+
+
+ +
chat-right-text-fill
+
+
+ +
chat-right-text
+
+
+ +
chat-right
+
+
+ +
chat-square-dots-fill
+
+
+ +
chat-square-dots
+
+
+ +
chat-square-fill
+
+
+ +
chat-square-heart-fill
+
+
+ +
chat-square-heart
+
+
+ +
chat-square-quote-fill
+
+
+ +
chat-square-quote
+
+
+ +
chat-square-text-fill
+
+
+ +
chat-square-text
+
+
+ +
chat-square
+
+
+ +
chat-text-fill
+
+
+ +
chat-text
+
+
+ +
chat
+
+
+ +
check-all
+
+
+ +
check-circle-fill
+
+
+ +
check-circle
+
+
+ +
check-lg
+
+
+ +
check-square-fill
+
+
+ +
check-square
+
+
+ +
check
+
+
+ +
check2-all
+
+
+ +
check2-circle
+
+
+ +
check2-square
+
+
+ +
check2
+
+
+ +
chevron-bar-contract
+
+
+ +
chevron-bar-down
+
+
+ +
chevron-bar-expand
+
+
+ +
chevron-bar-left
+
+
+ +
chevron-bar-right
+
+
+ +
chevron-bar-up
+
+
+ +
chevron-compact-down
+
+
+ +
chevron-compact-left
+
+
+ +
chevron-compact-right
+
+
+ +
chevron-compact-up
+
+
+ +
chevron-contract
+
+
+ +
chevron-double-down
+
+
+ +
chevron-double-left
+
+
+ +
chevron-double-right
+
+
+ +
chevron-double-up
+
+
+ +
chevron-down
+
+
+ +
chevron-expand
+
+
+ +
chevron-left
+
+
+ +
chevron-right
+
+
+ +
chevron-up
+
+
+ +
circle-fill
+
+
+ +
circle-half
+
+
+ +
circle-square
+
+
+ +
circle
+
+
+ +
clipboard-check-fill
+
+
+ +
clipboard-check
+
+
+ +
clipboard-data-fill
+
+
+ +
clipboard-data
+
+
+ +
clipboard-fill
+
+
+ +
clipboard-heart-fill
+
+
+ +
clipboard-heart
+
+
+ +
clipboard-minus-fill
+
+
+ +
clipboard-minus
+
+
+ +
clipboard-plus-fill
+
+
+ +
clipboard-plus
+
+
+ +
clipboard-pulse
+
+
+ +
clipboard-x-fill
+
+
+ +
clipboard-x
+
+
+ +
clipboard
+
+
+ +
clipboard2-check-fill
+
+
+ +
clipboard2-check
+
+
+ +
clipboard2-data-fill
+
+
+ +
clipboard2-data
+
+
+ +
clipboard2-fill
+
+
+ +
clipboard2-heart-fill
+
+
+ +
clipboard2-heart
+
+
+ +
clipboard2-minus-fill
+
+
+ +
clipboard2-minus
+
+
+ +
clipboard2-plus-fill
+
+
+ +
clipboard2-plus
+
+
+ +
clipboard2-pulse-fill
+
+
+ +
clipboard2-pulse
+
+
+ +
clipboard2-x-fill
+
+
+ +
clipboard2-x
+
+
+ +
clipboard2
+
+
+ +
clock-fill
+
+
+ +
clock-history
+
+
+ +
clock
+
+
+ +
cloud-arrow-down-fill
+
+
+ +
cloud-arrow-down
+
+
+ +
cloud-arrow-up-fill
+
+
+ +
cloud-arrow-up
+
+
+ +
cloud-check-fill
+
+
+ +
cloud-check
+
+
+ +
cloud-download-fill
+
+
+ +
cloud-download
+
+
+ +
cloud-drizzle-fill
+
+
+ +
cloud-drizzle
+
+
+ +
cloud-fill
+
+
+ +
cloud-fog-fill
+
+
+ +
cloud-fog
+
+
+ +
cloud-fog2-fill
+
+
+ +
cloud-fog2
+
+
+ +
cloud-hail-fill
+
+
+ +
cloud-hail
+
+
+ +
cloud-haze-fill
+
+
+ +
cloud-haze
+
+
+ +
cloud-haze2-fill
+
+
+ +
cloud-haze2
+
+
+ +
cloud-lightning-fill
+
+
+ +
cloud-lightning-rain-fill
+
+
+ +
cloud-lightning-rain
+
+
+ +
cloud-lightning
+
+
+ +
cloud-minus-fill
+
+
+ +
cloud-minus
+
+
+ +
cloud-moon-fill
+
+
+ +
cloud-moon
+
+
+ +
cloud-plus-fill
+
+
+ +
cloud-plus
+
+
+ +
cloud-rain-fill
+
+
+ +
cloud-rain-heavy-fill
+
+
+ +
cloud-rain-heavy
+
+
+ +
cloud-rain
+
+
+ +
cloud-slash-fill
+
+
+ +
cloud-slash
+
+
+ +
cloud-sleet-fill
+
+
+ +
cloud-sleet
+
+
+ +
cloud-snow-fill
+
+
+ +
cloud-snow
+
+
+ +
cloud-sun-fill
+
+
+ +
cloud-sun
+
+
+ +
cloud-upload-fill
+
+
+ +
cloud-upload
+
+
+ +
cloud
+
+
+ +
clouds-fill
+
+
+ +
clouds
+
+
+ +
cloudy-fill
+
+
+ +
cloudy
+
+
+ +
code-slash
+
+
+ +
code-square
+
+
+ +
code
+
+
+ +
coin
+
+
+ +
collection-fill
+
+
+ +
collection-play-fill
+
+
+ +
collection-play
+
+
+ +
collection
+
+
+ +
columns-gap
+
+
+ +
columns
+
+
+ +
command
+
+
+ +
compass-fill
+
+
+ +
compass
+
+
+ +
cone-striped
+
+
+ +
cone
+
+
+ +
controller
+
+
+ +
cpu-fill
+
+
+ +
cpu
+
+
+ +
credit-card-2-back-fill
+
+
+ +
credit-card-2-back
+
+
+ +
credit-card-2-front-fill
+
+
+ +
credit-card-2-front
+
+
+ +
credit-card-fill
+
+
+ +
credit-card
+
+
+ +
crop
+
+
+ +
cup-fill
+
+
+ +
cup-hot-fill
+
+
+ +
cup-hot
+
+
+ +
cup-straw
+
+
+ +
cup
+
+
+ +
currency-bitcoin
+
+
+ +
currency-dollar
+
+
+ +
currency-euro
+
+
+ +
currency-exchange
+
+
+ +
currency-pound
+
+
+ +
currency-rupee
+
+
+ +
currency-yen
+
+
+ +
cursor-fill
+
+
+ +
cursor-text
+
+
+ +
cursor
+
+
+ +
dash-circle-dotted
+
+
+ +
dash-circle-fill
+
+
+ +
dash-circle
+
+
+ +
dash-lg
+
+
+ +
dash-square-dotted
+
+
+ +
dash-square-fill
+
+
+ +
dash-square
+
+
+ +
dash
+
+
+ +
device-hdd-fill
+
+
+ +
device-hdd
+
+
+ +
device-ssd-fill
+
+
+ +
device-ssd
+
+
+ +
diagram-2-fill
+
+
+ +
diagram-2
+
+
+ +
diagram-3-fill
+
+
+ +
diagram-3
+
+
+ +
diamond-fill
+
+
+ +
diamond-half
+
+
+ +
diamond
+
+
+ +
dice-1-fill
+
+
+ +
dice-1
+
+
+ +
dice-2-fill
+
+
+ +
dice-2
+
+
+ +
dice-3-fill
+
+
+ +
dice-3
+
+
+ +
dice-4-fill
+
+
+ +
dice-4
+
+
+ +
dice-5-fill
+
+
+ +
dice-5
+
+
+ +
dice-6-fill
+
+
+ +
dice-6
+
+
+ +
disc-fill
+
+
+ +
disc
+
+
+ +
discord
+
+
+ +
display-fill
+
+
+ +
display
+
+
+ +
displayport-fill
+
+
+ +
displayport
+
+
+ +
distribute-horizontal
+
+
+ +
distribute-vertical
+
+
+ +
door-closed-fill
+
+
+ +
door-closed
+
+
+ +
door-open-fill
+
+
+ +
door-open
+
+
+ +
dot
+
+
+ +
download
+
+
+ +
dpad-fill
+
+
+ +
dpad
+
+
+ +
dribbble
+
+
+ +
dropbox
+
+
+ +
droplet-fill
+
+
+ +
droplet-half
+
+
+ +
droplet
+
+
+ +
ear-fill
+
+
+ +
ear
+
+
+ +
earbuds
+
+
+ +
easel-fill
+
+
+ +
easel
+
+
+ +
easel2-fill
+
+
+ +
easel2
+
+
+ +
easel3-fill
+
+
+ +
easel3
+
+
+ +
egg-fill
+
+
+ +
egg-fried
+
+
+ +
egg
+
+
+ +
eject-fill
+
+
+ +
eject
+
+
+ +
emoji-angry-fill
+
+
+ +
emoji-angry
+
+
+ +
emoji-dizzy-fill
+
+
+ +
emoji-dizzy
+
+
+ +
emoji-expressionless-fill
+
+
+ +
emoji-expressionless
+
+
+ +
emoji-frown-fill
+
+
+ +
emoji-frown
+
+
+ +
emoji-heart-eyes-fill
+
+
+ +
emoji-heart-eyes
+
+
+ +
emoji-kiss-fill
+
+
+ +
emoji-kiss
+
+
+ +
emoji-laughing-fill
+
+
+ +
emoji-laughing
+
+
+ +
emoji-neutral-fill
+
+
+ +
emoji-neutral
+
+
+ +
emoji-smile-fill
+
+
+ +
emoji-smile-upside-down-fill
+
+
+ +
emoji-smile-upside-down
+
+
+ +
emoji-smile
+
+
+ +
emoji-sunglasses-fill
+
+
+ +
emoji-sunglasses
+
+
+ +
emoji-wink-fill
+
+
+ +
emoji-wink
+
+
+ +
envelope-check-fill
+
+
+ +
envelope-check
+
+
+ +
envelope-dash-fill
+
+
+ +
envelope-dash
+
+
+ +
envelope-exclamation-fill
+
+
+ +
envelope-exclamation
+
+
+ +
envelope-fill
+
+
+ +
envelope-heart-fill
+
+
+ +
envelope-heart
+
+
+ +
envelope-open-fill
+
+
+ +
envelope-open-heart-fill
+
+
+ +
envelope-open-heart
+
+
+ +
envelope-open
+
+
+ +
envelope-paper-fill
+
+
+ +
envelope-paper-heart-fill
+
+
+ +
envelope-paper-heart
+
+
+ +
envelope-paper
+
+
+ +
envelope-plus-fill
+
+
+ +
envelope-plus
+
+
+ +
envelope-slash-fill
+
+
+ +
envelope-slash
+
+
+ +
envelope-x-fill
+
+
+ +
envelope-x
+
+
+ +
envelope
+
+
+ +
eraser-fill
+
+
+ +
eraser
+
+
+ +
escape
+
+
+ +
ethernet
+
+
+ +
ev-station-fill
+
+
+ +
ev-station
+
+
+ +
exclamation-circle-fill
+
+
+ +
exclamation-circle
+
+
+ +
exclamation-diamond-fill
+
+
+ +
exclamation-diamond
+
+
+ +
exclamation-lg
+
+
+ +
exclamation-octagon-fill
+
+
+ +
exclamation-octagon
+
+
+ +
exclamation-square-fill
+
+
+ +
exclamation-square
+
+
+ +
exclamation-triangle-fill
+
+
+ +
exclamation-triangle
+
+
+ +
exclamation
+
+
+ +
exclude
+
+
+ +
explicit-fill
+
+
+ +
explicit
+
+
+ +
eye-fill
+
+
+ +
eye-slash-fill
+
+
+ +
eye-slash
+
+
+ +
eye
+
+
+ +
eyedropper
+
+
+ +
eyeglasses
+
+
+ +
facebook
+
+
+ +
fan
+
+
+ +
fast-forward-btn-fill
+
+
+ +
fast-forward-btn
+
+
+ +
fast-forward-circle-fill
+
+
+ +
fast-forward-circle
+
+
+ +
fast-forward-fill
+
+
+ +
fast-forward
+
+
+ +
file-arrow-down-fill
+
+
+ +
file-arrow-down
+
+
+ +
file-arrow-up-fill
+
+
+ +
file-arrow-up
+
+
+ +
file-bar-graph-fill
+
+
+ +
file-bar-graph
+
+
+ +
file-binary-fill
+
+
+ +
file-binary
+
+
+ +
file-break-fill
+
+
+ +
file-break
+
+
+ +
file-check-fill
+
+
+ +
file-check
+
+
+ +
file-code-fill
+
+
+ +
file-code
+
+
+ +
file-diff-fill
+
+
+ +
file-diff
+
+
+ +
file-earmark-arrow-down-fill
+
+
+ +
file-earmark-arrow-down
+
+
+ +
file-earmark-arrow-up-fill
+
+
+ +
file-earmark-arrow-up
+
+
+ +
file-earmark-bar-graph-fill
+
+
+ +
file-earmark-bar-graph
+
+
+ +
file-earmark-binary-fill
+
+
+ +
file-earmark-binary
+
+
+ +
file-earmark-break-fill
+
+
+ +
file-earmark-break
+
+
+ +
file-earmark-check-fill
+
+
+ +
file-earmark-check
+
+
+ +
file-earmark-code-fill
+
+
+ +
file-earmark-code
+
+
+ +
file-earmark-diff-fill
+
+
+ +
file-earmark-diff
+
+
+ +
file-earmark-easel-fill
+
+
+ +
file-earmark-easel
+
+
+ +
file-earmark-excel-fill
+
+
+ +
file-earmark-excel
+
+
+ +
file-earmark-fill
+
+
+ +
file-earmark-font-fill
+
+
+ +
file-earmark-font
+
+
+ +
file-earmark-image-fill
+
+
+ +
file-earmark-image
+
+
+ +
file-earmark-lock-fill
+
+
+ +
file-earmark-lock
+
+
+ +
file-earmark-lock2-fill
+
+
+ +
file-earmark-lock2
+
+
+ +
file-earmark-medical-fill
+
+
+ +
file-earmark-medical
+
+
+ +
file-earmark-minus-fill
+
+
+ +
file-earmark-minus
+
+
+ +
file-earmark-music-fill
+
+
+ +
file-earmark-music
+
+
+ +
file-earmark-pdf-fill
+
+
+ +
file-earmark-pdf
+
+
+ +
file-earmark-person-fill
+
+
+ +
file-earmark-person
+
+
+ +
file-earmark-play-fill
+
+
+ +
file-earmark-play
+
+
+ +
file-earmark-plus-fill
+
+
+ +
file-earmark-plus
+
+
+ +
file-earmark-post-fill
+
+
+ +
file-earmark-post
+
+
+ +
file-earmark-ppt-fill
+
+
+ +
file-earmark-ppt
+
+
+ +
file-earmark-richtext-fill
+
+
+ +
file-earmark-richtext
+
+
+ +
file-earmark-ruled-fill
+
+
+ +
file-earmark-ruled
+
+
+ +
file-earmark-slides-fill
+
+
+ +
file-earmark-slides
+
+
+ +
file-earmark-spreadsheet-fill
+
+
+ +
file-earmark-spreadsheet
+
+
+ +
file-earmark-text-fill
+
+
+ +
file-earmark-text
+
+
+ +
file-earmark-word-fill
+
+
+ +
file-earmark-word
+
+
+ +
file-earmark-x-fill
+
+
+ +
file-earmark-x
+
+
+ +
file-earmark-zip-fill
+
+
+ +
file-earmark-zip
+
+
+ +
file-earmark
+
+
+ +
file-easel-fill
+
+
+ +
file-easel
+
+
+ +
file-excel-fill
+
+
+ +
file-excel
+
+
+ +
file-fill
+
+
+ +
file-font-fill
+
+
+ +
file-font
+
+
+ +
file-image-fill
+
+
+ +
file-image
+
+
+ +
file-lock-fill
+
+
+ +
file-lock
+
+
+ +
file-lock2-fill
+
+
+ +
file-lock2
+
+
+ +
file-medical-fill
+
+
+ +
file-medical
+
+
+ +
file-minus-fill
+
+
+ +
file-minus
+
+
+ +
file-music-fill
+
+
+ +
file-music
+
+
+ +
file-pdf-fill
+
+
+ +
file-pdf
+
+
+ +
file-person-fill
+
+
+ +
file-person
+
+
+ +
file-play-fill
+
+
+ +
file-play
+
+
+ +
file-plus-fill
+
+
+ +
file-plus
+
+
+ +
file-post-fill
+
+
+ +
file-post
+
+
+ +
file-ppt-fill
+
+
+ +
file-ppt
+
+
+ +
file-richtext-fill
+
+
+ +
file-richtext
+
+
+ +
file-ruled-fill
+
+
+ +
file-ruled
+
+
+ +
file-slides-fill
+
+
+ +
file-slides
+
+
+ +
file-spreadsheet-fill
+
+
+ +
file-spreadsheet
+
+
+ +
file-text-fill
+
+
+ +
file-text
+
+
+ +
file-word-fill
+
+
+ +
file-word
+
+
+ +
file-x-fill
+
+
+ +
file-x
+
+
+ +
file-zip-fill
+
+
+ +
file-zip
+
+
+ +
file
+
+
+ +
files-alt
+
+
+ +
files
+
+
+ +
filetype-aac
+
+
+ +
filetype-ai
+
+
+ +
filetype-bmp
+
+
+ +
filetype-cs
+
+
+ +
filetype-css
+
+
+ +
filetype-csv
+
+
+ +
filetype-doc
+
+
+ +
filetype-docx
+
+
+ +
filetype-exe
+
+
+ +
filetype-gif
+
+
+ +
filetype-heic
+
+
+ +
filetype-html
+
+
+ +
filetype-java
+
+
+ +
filetype-jpg
+
+
+ +
filetype-js
+
+
+ +
filetype-json
+
+
+ +
filetype-jsx
+
+
+ +
filetype-key
+
+
+ +
filetype-m4p
+
+
+ +
filetype-md
+
+
+ +
filetype-mdx
+
+
+ +
filetype-mov
+
+
+ +
filetype-mp3
+
+
+ +
filetype-mp4
+
+
+ +
filetype-otf
+
+
+ +
filetype-pdf
+
+
+ +
filetype-php
+
+
+ +
filetype-png
+
+
+ +
filetype-ppt
+
+
+ +
filetype-pptx
+
+
+ +
filetype-psd
+
+
+ +
filetype-py
+
+
+ +
filetype-raw
+
+
+ +
filetype-rb
+
+
+ +
filetype-sass
+
+
+ +
filetype-scss
+
+
+ +
filetype-sh
+
+
+ +
filetype-sql
+
+
+ +
filetype-svg
+
+
+ +
filetype-tiff
+
+
+ +
filetype-tsx
+
+
+ +
filetype-ttf
+
+
+ +
filetype-txt
+
+
+ +
filetype-wav
+
+
+ +
filetype-woff
+
+
+ +
filetype-xls
+
+
+ +
filetype-xlsx
+
+
+ +
filetype-xml
+
+
+ +
filetype-yml
+
+
+ +
film
+
+
+ +
filter-circle-fill
+
+
+ +
filter-circle
+
+
+ +
filter-left
+
+
+ +
filter-right
+
+
+ +
filter-square-fill
+
+
+ +
filter-square
+
+
+ +
filter
+
+
+ +
fingerprint
+
+
+ +
fire
+
+
+ +
flag-fill
+
+
+ +
flag
+
+
+ +
flower1
+
+
+ +
flower2
+
+
+ +
flower3
+
+
+ +
folder-check
+
+
+ +
folder-fill
+
+
+ +
folder-minus
+
+
+ +
folder-plus
+
+
+ +
folder-symlink-fill
+
+
+ +
folder-symlink
+
+
+ +
folder-x
+
+
+ +
folder
+
+
+ +
folder2-open
+
+
+ +
folder2
+
+
+ +
fonts
+
+
+ +
forward-fill
+
+
+ +
forward
+
+
+ +
front
+
+
+ +
fuel-pump-diesel-fill
+
+
+ +
fuel-pump-diesel
+
+
+ +
fuel-pump-fill
+
+
+ +
fuel-pump
+
+
+ +
fullscreen-exit
+
+
+ +
fullscreen
+
+
+ +
funnel-fill
+
+
+ +
funnel
+
+
+ +
gear-fill
+
+
+ +
gear-wide-connected
+
+
+ +
gear-wide
+
+
+ +
gear
+
+
+ +
gem
+
+
+ +
gender-ambiguous
+
+
+ +
gender-female
+
+
+ +
gender-male
+
+
+ +
gender-trans
+
+
+ +
geo-alt-fill
+
+
+ +
geo-alt
+
+
+ +
geo-fill
+
+
+ +
geo
+
+
+ +
gift-fill
+
+
+ +
gift
+
+
+ +
git
+
+
+ +
github
+
+
+ +
globe
+
+
+ +
globe2
+
+
+ +
google-play
+
+
+ +
google
+
+
+ +
gpu-card
+
+
+ +
graph-down-arrow
+
+
+ +
graph-down
+
+
+ +
graph-up-arrow
+
+
+ +
graph-up
+
+
+ +
grid-1x2-fill
+
+
+ +
grid-1x2
+
+
+ +
grid-3x2-gap-fill
+
+
+ +
grid-3x2-gap
+
+
+ +
grid-3x2
+
+
+ +
grid-3x3-gap-fill
+
+
+ +
grid-3x3-gap
+
+
+ +
grid-3x3
+
+
+ +
grid-fill
+
+
+ +
grid
+
+
+ +
grip-horizontal
+
+
+ +
grip-vertical
+
+
+ +
h-circle-fill
+
+
+ +
h-circle
+
+
+ +
h-square-fill
+
+
+ +
h-square
+
+
+ +
hammer
+
+
+ +
hand-index-fill
+
+
+ +
hand-index-thumb-fill
+
+
+ +
hand-index-thumb
+
+
+ +
hand-index
+
+
+ +
hand-thumbs-down-fill
+
+
+ +
hand-thumbs-down
+
+
+ +
hand-thumbs-up-fill
+
+
+ +
hand-thumbs-up
+
+
+ +
handbag-fill
+
+
+ +
handbag
+
+
+ +
hash
+
+
+ +
hdd-fill
+
+
+ +
hdd-network-fill
+
+
+ +
hdd-network
+
+
+ +
hdd-rack-fill
+
+
+ +
hdd-rack
+
+
+ +
hdd-stack-fill
+
+
+ +
hdd-stack
+
+
+ +
hdd
+
+
+ +
hdmi-fill
+
+
+ +
hdmi
+
+
+ +
headphones
+
+
+ +
headset-vr
+
+
+ +
headset
+
+
+ +
heart-arrow
+
+
+ +
heart-fill
+
+
+ +
heart-half
+
+
+ +
heart-pulse-fill
+
+
+ +
heart-pulse
+
+
+ +
heart
+
+
+ +
heartbreak-fill
+
+
+ +
heartbreak
+
+
+ +
hearts
+
+
+ +
heptagon-fill
+
+
+ +
heptagon-half
+
+
+ +
heptagon
+
+
+ +
hexagon-fill
+
+
+ +
hexagon-half
+
+
+ +
hexagon
+
+
+ +
hospital-fill
+
+
+ +
hospital
+
+
+ +
hourglass-bottom
+
+
+ +
hourglass-split
+
+
+ +
hourglass-top
+
+
+ +
hourglass
+
+
+ +
house-door-fill
+
+
+ +
house-door
+
+
+ +
house-fill
+
+
+ +
house-heart-fill
+
+
+ +
house-heart
+
+
+ +
house
+
+
+ +
hr
+
+
+ +
hurricane
+
+
+ +
hypnotize
+
+
+ +
image-alt
+
+
+ +
image-fill
+
+
+ +
image
+
+
+ +
images
+
+
+ +
inbox-fill
+
+
+ +
inbox
+
+
+ +
inboxes-fill
+
+
+ +
inboxes
+
+
+ +
incognito
+
+
+ +
indent
+
+
+ +
infinity
+
+
+ +
info-circle-fill
+
+
+ +
info-circle
+
+
+ +
info-lg
+
+
+ +
info-square-fill
+
+
+ +
info-square
+
+
+ +
info
+
+
+ +
input-cursor-text
+
+
+ +
input-cursor
+
+
+ +
instagram
+
+
+ +
intersect
+
+
+ +
journal-album
+
+
+ +
journal-arrow-down
+
+
+ +
journal-arrow-up
+
+
+ +
journal-bookmark-fill
+
+
+ +
journal-bookmark
+
+
+ +
journal-check
+
+
+ +
journal-code
+
+
+ +
journal-medical
+
+
+ +
journal-minus
+
+
+ +
journal-plus
+
+
+ +
journal-richtext
+
+
+ +
journal-text
+
+
+ +
journal-x
+
+
+ +
journal
+
+
+ +
journals
+
+
+ +
joystick
+
+
+ +
justify-left
+
+
+ +
justify-right
+
+
+ +
justify
+
+
+ +
kanban-fill
+
+
+ +
kanban
+
+
+ +
key-fill
+
+
+ +
key
+
+
+ +
keyboard-fill
+
+
+ +
keyboard
+
+
+ +
ladder
+
+
+ +
lamp-fill
+
+
+ +
lamp
+
+
+ +
laptop-fill
+
+
+ +
laptop
+
+
+ +
layer-backward
+
+
+ +
layer-forward
+
+
+ +
layers-fill
+
+
+ +
layers-half
+
+
+ +
layers
+
+
+ +
layout-sidebar-inset-reverse
+
+
+ +
layout-sidebar-inset
+
+
+ +
layout-sidebar-reverse
+
+
+ +
layout-sidebar
+
+
+ +
layout-split
+
+
+ +
layout-text-sidebar-reverse
+
+
+ +
layout-text-sidebar
+
+
+ +
layout-text-window-reverse
+
+
+ +
layout-text-window
+
+
+ +
layout-three-columns
+
+
+ +
layout-wtf
+
+
+ +
life-preserver
+
+
+ +
lightbulb-fill
+
+
+ +
lightbulb-off-fill
+
+
+ +
lightbulb-off
+
+
+ +
lightbulb
+
+
+ +
lightning-charge-fill
+
+
+ +
lightning-charge
+
+
+ +
lightning-fill
+
+
+ +
lightning
+
+
+ +
line
+
+
+ +
link-45deg
+
+
+ +
link
+
+
+ +
linkedin
+
+
+ +
list-check
+
+
+ +
list-columns-reverse
+
+
+ +
list-columns
+
+
+ +
list-nested
+
+
+ +
list-ol
+
+
+ +
list-stars
+
+
+ +
list-task
+
+
+ +
list-ul
+
+
+ +
list
+
+
+ +
lock-fill
+
+
+ +
lock
+
+
+ +
lungs-fill
+
+
+ +
lungs
+
+
+ +
magic
+
+
+ +
magnet-fill
+
+
+ +
magnet
+
+
+ +
mailbox
+
+
+ +
mailbox2
+
+
+ +
map-fill
+
+
+ +
map
+
+
+ +
markdown-fill
+
+
+ +
markdown
+
+
+ +
mask
+
+
+ +
mastodon
+
+
+ +
medium
+
+
+ +
megaphone-fill
+
+
+ +
megaphone
+
+
+ +
memory
+
+
+ +
menu-app-fill
+
+
+ +
menu-app
+
+
+ +
menu-button-fill
+
+
+ +
menu-button-wide-fill
+
+
+ +
menu-button-wide
+
+
+ +
menu-button
+
+
+ +
menu-down
+
+
+ +
menu-up
+
+
+ +
messenger
+
+
+ +
meta
+
+
+ +
mic-fill
+
+
+ +
mic-mute-fill
+
+
+ +
mic-mute
+
+
+ +
mic
+
+
+ +
microsoft-teams
+
+
+ +
microsoft
+
+
+ +
minecart-loaded
+
+
+ +
minecart
+
+
+ +
modem-fill
+
+
+ +
modem
+
+
+ +
moisture
+
+
+ +
moon-fill
+
+
+ +
moon-stars-fill
+
+
+ +
moon-stars
+
+
+ +
moon
+
+
+ +
mortarboard-fill
+
+
+ +
mortarboard
+
+
+ +
motherboard-fill
+
+
+ +
motherboard
+
+
+ +
mouse-fill
+
+
+ +
mouse
+
+
+ +
mouse2-fill
+
+
+ +
mouse2
+
+
+ +
mouse3-fill
+
+
+ +
mouse3
+
+
+ +
music-note-beamed
+
+
+ +
music-note-list
+
+
+ +
music-note
+
+
+ +
music-player-fill
+
+
+ +
music-player
+
+
+ +
newspaper
+
+
+ +
nintendo-switch
+
+
+ +
node-minus-fill
+
+
+ +
node-minus
+
+
+ +
node-plus-fill
+
+
+ +
node-plus
+
+
+ +
nut-fill
+
+
+ +
nut
+
+
+ +
octagon-fill
+
+
+ +
octagon-half
+
+
+ +
octagon
+
+
+ +
optical-audio-fill
+
+
+ +
optical-audio
+
+
+ +
option
+
+
+ +
outlet
+
+
+ +
p-circle-fill
+
+
+ +
p-circle
+
+
+ +
p-square-fill
+
+
+ +
p-square
+
+
+ +
paint-bucket
+
+
+ +
palette-fill
+
+
+ +
palette
+
+
+ +
palette2
+
+
+ +
paperclip
+
+
+ +
paragraph
+
+
+ +
pass-fill
+
+
+ +
pass
+
+
+ +
patch-check-fill
+
+
+ +
patch-check
+
+
+ +
patch-exclamation-fill
+
+
+ +
patch-exclamation
+
+
+ +
patch-minus-fill
+
+
+ +
patch-minus
+
+
+ +
patch-plus-fill
+
+
+ +
patch-plus
+
+
+ +
patch-question-fill
+
+
+ +
patch-question
+
+
+ +
pause-btn-fill
+
+
+ +
pause-btn
+
+
+ +
pause-circle-fill
+
+
+ +
pause-circle
+
+
+ +
pause-fill
+
+
+ +
pause
+
+
+ +
paypal
+
+
+ +
pc-display-horizontal
+
+
+ +
pc-display
+
+
+ +
pc-horizontal
+
+
+ +
pc
+
+
+ +
pci-card
+
+
+ +
peace-fill
+
+
+ +
peace
+
+
+ +
pen-fill
+
+
+ +
pen
+
+
+ +
pencil-fill
+
+
+ +
pencil-square
+
+
+ +
pencil
+
+
+ +
pentagon-fill
+
+
+ +
pentagon-half
+
+
+ +
pentagon
+
+
+ +
people-fill
+
+
+ +
people
+
+
+ +
percent
+
+
+ +
person-badge-fill
+
+
+ +
person-badge
+
+
+ +
person-bounding-box
+
+
+ +
person-check-fill
+
+
+ +
person-check
+
+
+ +
person-circle
+
+
+ +
person-dash-fill
+
+
+ +
person-dash
+
+
+ +
person-fill
+
+
+ +
person-heart
+
+
+ +
person-hearts
+
+
+ +
person-lines-fill
+
+
+ +
person-plus-fill
+
+
+ +
person-plus
+
+
+ +
person-rolodex
+
+
+ +
person-square
+
+
+ +
person-video
+
+
+ +
person-video2
+
+
+ +
person-video3
+
+
+ +
person-workspace
+
+
+ +
person-x-fill
+
+
+ +
person-x
+
+
+ +
person
+
+
+ +
phone-fill
+
+
+ +
phone-flip
+
+
+ +
phone-landscape-fill
+
+
+ +
phone-landscape
+
+
+ +
phone-vibrate-fill
+
+
+ +
phone-vibrate
+
+
+ +
phone
+
+
+ +
pie-chart-fill
+
+
+ +
pie-chart
+
+
+ +
piggy-bank-fill
+
+
+ +
piggy-bank
+
+
+ +
pin-angle-fill
+
+
+ +
pin-angle
+
+
+ +
pin-fill
+
+
+ +
pin-map-fill
+
+
+ +
pin-map
+
+
+ +
pin
+
+
+ +
pinterest
+
+
+ +
pip-fill
+
+
+ +
pip
+
+
+ +
play-btn-fill
+
+
+ +
play-btn
+
+
+ +
play-circle-fill
+
+
+ +
play-circle
+
+
+ +
play-fill
+
+
+ +
play
+
+
+ +
playstation
+
+
+ +
plug-fill
+
+
+ +
plug
+
+
+ +
plugin
+
+
+ +
plus-circle-dotted
+
+
+ +
plus-circle-fill
+
+
+ +
plus-circle
+
+
+ +
plus-lg
+
+
+ +
plus-slash-minus
+
+
+ +
plus-square-dotted
+
+
+ +
plus-square-fill
+
+
+ +
plus-square
+
+
+ +
plus
+
+
+ +
postage-fill
+
+
+ +
postage-heart-fill
+
+
+ +
postage-heart
+
+
+ +
postage
+
+
+ +
postcard-fill
+
+
+ +
postcard-heart-fill
+
+
+ +
postcard-heart
+
+
+ +
postcard
+
+
+ +
power
+
+
+ +
prescription
+
+
+ +
prescription2
+
+
+ +
printer-fill
+
+
+ +
printer
+
+
+ +
projector-fill
+
+
+ +
projector
+
+
+ +
puzzle-fill
+
+
+ +
puzzle
+
+
+ +
qr-code-scan
+
+
+ +
qr-code
+
+
+ +
question-circle-fill
+
+
+ +
question-circle
+
+
+ +
question-diamond-fill
+
+
+ +
question-diamond
+
+
+ +
question-lg
+
+
+ +
question-octagon-fill
+
+
+ +
question-octagon
+
+
+ +
question-square-fill
+
+
+ +
question-square
+
+
+ +
question
+
+
+ +
quora
+
+
+ +
quote
+
+
+ +
r-circle-fill
+
+
+ +
r-circle
+
+
+ +
r-square-fill
+
+
+ +
r-square
+
+
+ +
radioactive
+
+
+ +
rainbow
+
+
+ +
receipt-cutoff
+
+
+ +
receipt
+
+
+ +
reception-0
+
+
+ +
reception-1
+
+
+ +
reception-2
+
+
+ +
reception-3
+
+
+ +
reception-4
+
+
+ +
record-btn-fill
+
+
+ +
record-btn
+
+
+ +
record-circle-fill
+
+
+ +
record-circle
+
+
+ +
record-fill
+
+
+ +
record
+
+
+ +
record2-fill
+
+
+ +
record2
+
+
+ +
recycle
+
+
+ +
reddit
+
+
+ +
repeat-1
+
+
+ +
repeat
+
+
+ +
reply-all-fill
+
+
+ +
reply-all
+
+
+ +
reply-fill
+
+
+ +
reply
+
+
+ +
rewind-btn-fill
+
+
+ +
rewind-btn
+
+
+ +
rewind-circle-fill
+
+
+ +
rewind-circle
+
+
+ +
rewind-fill
+
+
+ +
rewind
+
+
+ +
robot
+
+
+ +
router-fill
+
+
+ +
router
+
+
+ +
rss-fill
+
+
+ +
rss
+
+
+ +
rulers
+
+
+ +
safe-fill
+
+
+ +
safe
+
+
+ +
safe2-fill
+
+
+ +
safe2
+
+
+ +
save-fill
+
+
+ +
save
+
+
+ +
save2-fill
+
+
+ +
save2
+
+
+ +
scissors
+
+
+ +
screwdriver
+
+
+ +
sd-card-fill
+
+
+ +
sd-card
+
+
+ +
search-heart-fill
+
+
+ +
search-heart
+
+
+ +
search
+
+
+ +
segmented-nav
+
+
+ +
send-check-fill
+
+
+ +
send-check
+
+
+ +
send-dash-fill
+
+
+ +
send-dash
+
+
+ +
send-exclamation-fill
+
+
+ +
send-exclamation
+
+
+ +
send-fill
+
+
+ +
send-plus-fill
+
+
+ +
send-plus
+
+
+ +
send-slash-fill
+
+
+ +
send-slash
+
+
+ +
send-x-fill
+
+
+ +
send-x
+
+
+ +
send
+
+
+ +
server
+
+
+ +
share-fill
+
+
+ +
share
+
+
+ +
shield-check
+
+
+ +
shield-exclamation
+
+
+ +
shield-fill-check
+
+
+ +
shield-fill-exclamation
+
+
+ +
shield-fill-minus
+
+
+ +
shield-fill-plus
+
+
+ +
shield-fill-x
+
+
+ +
shield-fill
+
+
+ +
shield-lock-fill
+
+
+ +
shield-lock
+
+
+ +
shield-minus
+
+
+ +
shield-plus
+
+
+ +
shield-shaded
+
+
+ +
shield-slash-fill
+
+
+ +
shield-slash
+
+
+ +
shield-x
+
+
+ +
shield
+
+
+ +
shift-fill
+
+
+ +
shift
+
+
+ +
shop-window
+
+
+ +
shop
+
+
+ +
shuffle
+
+
+ +
sign-stop-fill
+
+
+ +
sign-stop-lights-fill
+
+
+ +
sign-stop-lights
+
+
+ +
sign-stop
+
+
+ +
sign-turn-left-fill
+
+
+ +
sign-turn-left
+
+
+ +
sign-turn-right-fill
+
+
+ +
sign-turn-right
+
+
+ +
sign-turn-slight-left-fill
+
+
+ +
sign-turn-slight-left
+
+
+ +
sign-turn-slight-right-fill
+
+
+ +
sign-turn-slight-right
+
+
+ +
sign-yield-fill
+
+
+ +
sign-yield
+
+
+ +
signal
+
+
+ +
signpost-2-fill
+
+
+ +
signpost-2
+
+
+ +
signpost-fill
+
+
+ +
signpost-split-fill
+
+
+ +
signpost-split
+
+
+ +
signpost
+
+
+ +
sim-fill
+
+
+ +
sim
+
+
+ +
skip-backward-btn-fill
+
+
+ +
skip-backward-btn
+
+
+ +
skip-backward-circle-fill
+
+
+ +
skip-backward-circle
+
+
+ +
skip-backward-fill
+
+
+ +
skip-backward
+
+
+ +
skip-end-btn-fill
+
+
+ +
skip-end-btn
+
+
+ +
skip-end-circle-fill
+
+
+ +
skip-end-circle
+
+
+ +
skip-end-fill
+
+
+ +
skip-end
+
+
+ +
skip-forward-btn-fill
+
+
+ +
skip-forward-btn
+
+
+ +
skip-forward-circle-fill
+
+
+ +
skip-forward-circle
+
+
+ +
skip-forward-fill
+
+
+ +
skip-forward
+
+
+ +
skip-start-btn-fill
+
+
+ +
skip-start-btn
+
+
+ +
skip-start-circle-fill
+
+
+ +
skip-start-circle
+
+
+ +
skip-start-fill
+
+
+ +
skip-start
+
+
+ +
skype
+
+
+ +
slack
+
+
+ +
slash-circle-fill
+
+
+ +
slash-circle
+
+
+ +
slash-lg
+
+
+ +
slash-square-fill
+
+
+ +
slash-square
+
+
+ +
slash
+
+
+ +
sliders
+
+
+ +
sliders2-vertical
+
+
+ +
sliders2
+
+
+ +
smartwatch
+
+
+ +
snapchat
+
+
+ +
snow
+
+
+ +
snow2
+
+
+ +
snow3
+
+
+ +
sort-alpha-down-alt
+
+
+ +
sort-alpha-down
+
+
+ +
sort-alpha-up-alt
+
+
+ +
sort-alpha-up
+
+
+ +
sort-down-alt
+
+
+ +
sort-down
+
+
+ +
sort-numeric-down-alt
+
+
+ +
sort-numeric-down
+
+
+ +
sort-numeric-up-alt
+
+
+ +
sort-numeric-up
+
+
+ +
sort-up-alt
+
+
+ +
sort-up
+
+
+ +
soundwave
+
+
+ +
speaker-fill
+
+
+ +
speaker
+
+
+ +
speedometer
+
+
+ +
speedometer2
+
+
+ +
spellcheck
+
+
+ +
spotify
+
+
+ +
square-fill
+
+
+ +
square-half
+
+
+ +
square
+
+
+ +
stack-overflow
+
+
+ +
stack
+
+
+ +
star-fill
+
+
+ +
star-half
+
+
+ +
star
+
+
+ +
stars
+
+
+ +
steam
+
+
+ +
stickies-fill
+
+
+ +
stickies
+
+
+ +
sticky-fill
+
+
+ +
sticky
+
+
+ +
stop-btn-fill
+
+
+ +
stop-btn
+
+
+ +
stop-circle-fill
+
+
+ +
stop-circle
+
+
+ +
stop-fill
+
+
+ +
stop
+
+
+ +
stoplights-fill
+
+
+ +
stoplights
+
+
+ +
stopwatch-fill
+
+
+ +
stopwatch
+
+
+ +
strava
+
+
+ +
subtract
+
+
+ +
suit-club-fill
+
+
+ +
suit-club
+
+
+ +
suit-diamond-fill
+
+
+ +
suit-diamond
+
+
+ +
suit-heart-fill
+
+
+ +
suit-heart
+
+
+ +
suit-spade-fill
+
+
+ +
suit-spade
+
+
+ +
sun-fill
+
+
+ +
sun
+
+
+ +
sunglasses
+
+
+ +
sunrise-fill
+
+
+ +
sunrise
+
+
+ +
sunset-fill
+
+
+ +
sunset
+
+
+ +
symmetry-horizontal
+
+
+ +
symmetry-vertical
+
+
+ +
table
+
+
+ +
tablet-fill
+
+
+ +
tablet-landscape-fill
+
+
+ +
tablet-landscape
+
+
+ +
tablet
+
+
+ +
tag-fill
+
+
+ +
tag
+
+
+ +
tags-fill
+
+
+ +
tags
+
+
+ +
telegram
+
+
+ +
telephone-fill
+
+
+ +
telephone-forward-fill
+
+
+ +
telephone-forward
+
+
+ +
telephone-inbound-fill
+
+
+ +
telephone-inbound
+
+
+ +
telephone-minus-fill
+
+
+ +
telephone-minus
+
+
+ +
telephone-outbound-fill
+
+
+ +
telephone-outbound
+
+
+ +
telephone-plus-fill
+
+
+ +
telephone-plus
+
+
+ +
telephone-x-fill
+
+
+ +
telephone-x
+
+
+ +
telephone
+
+
+ +
terminal-dash
+
+
+ +
terminal-fill
+
+
+ +
terminal-plus
+
+
+ +
terminal-split
+
+
+ +
terminal-x
+
+
+ +
terminal
+
+
+ +
text-center
+
+
+ +
text-indent-left
+
+
+ +
text-indent-right
+
+
+ +
text-left
+
+
+ +
text-paragraph
+
+
+ +
text-right
+
+
+ +
textarea-resize
+
+
+ +
textarea-t
+
+
+ +
textarea
+
+
+ +
thermometer-half
+
+
+ +
thermometer-high
+
+
+ +
thermometer-low
+
+
+ +
thermometer-snow
+
+
+ +
thermometer-sun
+
+
+ +
thermometer
+
+
+ +
three-dots-vertical
+
+
+ +
three-dots
+
+
+ +
thunderbolt-fill
+
+
+ +
thunderbolt
+
+
+ +
ticket-detailed-fill
+
+
+ +
ticket-detailed
+
+
+ +
ticket-fill
+
+
+ +
ticket-perforated-fill
+
+
+ +
ticket-perforated
+
+
+ +
ticket
+
+
+ +
tiktok
+
+
+ +
toggle-off
+
+
+ +
toggle-on
+
+
+ +
toggle2-off
+
+
+ +
toggle2-on
+
+
+ +
toggles
+
+
+ +
toggles2
+
+
+ +
tools
+
+
+ +
tornado
+
+
+ +
train-freight-front-fill
+
+
+ +
train-freight-front
+
+
+ +
train-front-fill
+
+
+ +
train-front
+
+
+ +
train-lightrail-front-fill
+
+
+ +
train-lightrail-front
+
+
+ +
translate
+
+
+ +
trash-fill
+
+
+ +
trash
+
+
+ +
trash2-fill
+
+
+ +
trash2
+
+
+ +
trash3-fill
+
+
+ +
trash3
+
+
+ +
tree-fill
+
+
+ +
tree
+
+
+ +
triangle-fill
+
+
+ +
triangle-half
+
+
+ +
triangle
+
+
+ +
trophy-fill
+
+
+ +
trophy
+
+
+ +
tropical-storm
+
+
+ +
truck-flatbed
+
+
+ +
truck-front-fill
+
+
+ +
truck-front
+
+
+ +
truck
+
+
+ +
tsunami
+
+
+ +
tv-fill
+
+
+ +
tv
+
+
+ +
twitch
+
+
+ +
twitter
+
+
+ +
type-bold
+
+
+ +
type-h1
+
+
+ +
type-h2
+
+
+ +
type-h3
+
+
+ +
type-italic
+
+
+ +
type-strikethrough
+
+
+ +
type-underline
+
+
+ +
type
+
+
+ +
ubuntu
+
+
+ +
ui-checks-grid
+
+
+ +
ui-checks
+
+
+ +
ui-radios-grid
+
+
+ +
ui-radios
+
+
+ +
umbrella-fill
+
+
+ +
umbrella
+
+
+ +
unindent
+
+
+ +
union
+
+
+ +
unity
+
+
+ +
universal-access-circle
+
+
+ +
universal-access
+
+
+ +
unlock-fill
+
+
+ +
unlock
+
+
+ +
upc-scan
+
+
+ +
upc
+
+
+ +
upload
+
+
+ +
usb-c-fill
+
+
+ +
usb-c
+
+
+ +
usb-drive-fill
+
+
+ +
usb-drive
+
+
+ +
usb-fill
+
+
+ +
usb-micro-fill
+
+
+ +
usb-micro
+
+
+ +
usb-mini-fill
+
+
+ +
usb-mini
+
+
+ +
usb-plug-fill
+
+
+ +
usb-plug
+
+
+ +
usb-symbol
+
+
+ +
usb
+
+
+ +
valentine
+
+
+ +
valentine2
+
+
+ +
vector-pen
+
+
+ +
view-list
+
+
+ +
view-stacked
+
+
+ +
vimeo
+
+
+ +
vinyl-fill
+
+
+ +
vinyl
+
+
+ +
virus
+
+
+ +
virus2
+
+
+ +
voicemail
+
+
+ +
volume-down-fill
+
+
+ +
volume-down
+
+
+ +
volume-mute-fill
+
+
+ +
volume-mute
+
+
+ +
volume-off-fill
+
+
+ +
volume-off
+
+
+ +
volume-up-fill
+
+
+ +
volume-up
+
+
+ +
vr
+
+
+ +
wallet-fill
+
+
+ +
wallet
+
+
+ +
wallet2
+
+
+ +
watch
+
+
+ +
water
+
+
+ +
webcam-fill
+
+
+ +
webcam
+
+
+ +
wechat
+
+
+ +
whatsapp
+
+
+ +
wifi-1
+
+
+ +
wifi-2
+
+
+ +
wifi-off
+
+
+ +
wifi
+
+
+ +
wind
+
+
+ +
window-dash
+
+
+ +
window-desktop
+
+
+ +
window-dock
+
+
+ +
window-fullscreen
+
+
+ +
window-plus
+
+
+ +
window-sidebar
+
+
+ +
window-split
+
+
+ +
window-stack
+
+
+ +
window-x
+
+
+ +
window
+
+
+ +
windows
+
+
+ +
wordpress
+
+
+ +
wrench-adjustable-circle-fill
+
+
+ +
wrench-adjustable-circle
+
+
+ +
wrench-adjustable
+
+
+ +
wrench
+
+
+ +
x-circle-fill
+
+
+ +
x-circle
+
+
+ +
x-diamond-fill
+
+
+ +
x-diamond
+
+
+ +
x-lg
+
+
+ +
x-octagon-fill
+
+
+ +
x-octagon
+
+
+ +
x-square-fill
+
+
+ +
x-square
+
+
+ +
x
+
+
+ +
xbox
+
+
+ +
yelp
+
+
+ +
yin-yang
+
+
+ +
youtube
+
+
+ +
zoom-in
+
+
+ +
zoom-out
+
+
+ + + diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/infinity.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/infinity.svg new file mode 100644 index 0000000..e9dd437 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/infinity.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/info-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-circle-fill.svg new file mode 100644 index 0000000..9d38231 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/info-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-circle.svg new file mode 100644 index 0000000..8f48f86 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/info-lg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-lg.svg new file mode 100644 index 0000000..d1b988e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/info-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-square-fill.svg new file mode 100644 index 0000000..c2e5a66 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/info-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-square.svg new file mode 100644 index 0000000..71e2818 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/info-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/info.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/info.svg new file mode 100644 index 0000000..9d061b4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/info.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/input-cursor-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/input-cursor-text.svg new file mode 100644 index 0000000..f212111 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/input-cursor-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/input-cursor.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/input-cursor.svg new file mode 100644 index 0000000..3a89bb7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/input-cursor.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/instagram.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/instagram.svg new file mode 100644 index 0000000..0b5c5ce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/instagram.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/intersect.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/intersect.svg new file mode 100644 index 0000000..2d8c329 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/intersect.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-album.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-album.svg new file mode 100644 index 0000000..2504b3d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-album.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-arrow-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-arrow-down.svg new file mode 100644 index 0000000..79c313d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-arrow-down.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-arrow-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-arrow-up.svg new file mode 100644 index 0000000..8423461 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-arrow-up.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-bookmark-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-bookmark-fill.svg new file mode 100644 index 0000000..03e2476 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-bookmark-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-bookmark.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-bookmark.svg new file mode 100644 index 0000000..6652764 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-bookmark.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-check.svg new file mode 100644 index 0000000..41b97e9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-code.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-code.svg new file mode 100644 index 0000000..82098b9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-code.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-medical.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-medical.svg new file mode 100644 index 0000000..5500110 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-medical.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-minus.svg new file mode 100644 index 0000000..c8cd4d8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-minus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-plus.svg new file mode 100644 index 0000000..fa6d702 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-plus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-richtext.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-richtext.svg new file mode 100644 index 0000000..14b0e1f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-richtext.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-text.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-text.svg new file mode 100644 index 0000000..9b66f43 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-text.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-x.svg new file mode 100644 index 0000000..2ca24f4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal.svg new file mode 100644 index 0000000..941c987 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journal.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/journals.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/journals.svg new file mode 100644 index 0000000..03f6dad --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/journals.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/joystick.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/joystick.svg new file mode 100644 index 0000000..a8a9027 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/joystick.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/justify-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/justify-left.svg new file mode 100644 index 0000000..68859b8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/justify-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/justify-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/justify-right.svg new file mode 100644 index 0000000..1efe4f3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/justify-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/justify.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/justify.svg new file mode 100644 index 0000000..009bd72 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/justify.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/kanban-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/kanban-fill.svg new file mode 100644 index 0000000..d633a53 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/kanban-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/kanban.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/kanban.svg new file mode 100644 index 0000000..c5cdaaf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/kanban.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/key-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/key-fill.svg new file mode 100644 index 0000000..25a6d45 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/key-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/key.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/key.svg new file mode 100644 index 0000000..dbaae3f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/key.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/keyboard-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/keyboard-fill.svg new file mode 100644 index 0000000..876321d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/keyboard-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/keyboard.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/keyboard.svg new file mode 100644 index 0000000..996c1eb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/keyboard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ladder.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ladder.svg new file mode 100644 index 0000000..fd9182a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ladder.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lamp-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lamp-fill.svg new file mode 100644 index 0000000..ff91f4b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lamp-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lamp.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lamp.svg new file mode 100644 index 0000000..6c50a70 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lamp.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/laptop-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/laptop-fill.svg new file mode 100644 index 0000000..5b1755d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/laptop-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/laptop.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/laptop.svg new file mode 100644 index 0000000..0fc463d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/laptop.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layer-backward.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layer-backward.svg new file mode 100644 index 0000000..073034a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layer-backward.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layer-forward.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layer-forward.svg new file mode 100644 index 0000000..ffc6e2a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layer-forward.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layers-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layers-fill.svg new file mode 100644 index 0000000..8af0b1c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layers-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layers-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layers-half.svg new file mode 100644 index 0000000..a054e25 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layers-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layers.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layers.svg new file mode 100644 index 0000000..ac2f5b2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layers.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-inset-reverse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-inset-reverse.svg new file mode 100644 index 0000000..5b6f324 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-inset-reverse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-inset.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-inset.svg new file mode 100644 index 0000000..8dc0243 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-inset.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-reverse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-reverse.svg new file mode 100644 index 0000000..8ab9509 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar-reverse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar.svg new file mode 100644 index 0000000..1cfc86e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-sidebar.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-split.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-split.svg new file mode 100644 index 0000000..71f33d2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-split.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-sidebar-reverse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-sidebar-reverse.svg new file mode 100644 index 0000000..46252d5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-sidebar-reverse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-sidebar.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-sidebar.svg new file mode 100644 index 0000000..5effada --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-sidebar.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-window-reverse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-window-reverse.svg new file mode 100644 index 0000000..fb34840 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-window-reverse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-window.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-window.svg new file mode 100644 index 0000000..0aef110 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-text-window.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-three-columns.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-three-columns.svg new file mode 100644 index 0000000..6d358d6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-three-columns.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-wtf.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-wtf.svg new file mode 100644 index 0000000..b603f8f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/layout-wtf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/life-preserver.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/life-preserver.svg new file mode 100644 index 0000000..6466ea2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/life-preserver.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-fill.svg new file mode 100644 index 0000000..9903950 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-off-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-off-fill.svg new file mode 100644 index 0000000..7d9600e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-off-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-off.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-off.svg new file mode 100644 index 0000000..5675e9c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb.svg new file mode 100644 index 0000000..c13f627 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightbulb.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-charge-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-charge-fill.svg new file mode 100644 index 0000000..5e197fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-charge-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-charge.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-charge.svg new file mode 100644 index 0000000..8a97432 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-charge.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-fill.svg new file mode 100644 index 0000000..4d05a2b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning.svg new file mode 100644 index 0000000..8737060 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lightning.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/line.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/line.svg new file mode 100644 index 0000000..bedc051 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/line.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/link-45deg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/link-45deg.svg new file mode 100644 index 0000000..127956a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/link-45deg.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/link.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/link.svg new file mode 100644 index 0000000..df35bc8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/link.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/linkedin.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/linkedin.svg new file mode 100644 index 0000000..4c4efe5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/linkedin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-check.svg new file mode 100644 index 0000000..34dd420 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-check.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list-columns-reverse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-columns-reverse.svg new file mode 100644 index 0000000..2cb5078 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-columns-reverse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list-columns.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-columns.svg new file mode 100644 index 0000000..d04a30f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-columns.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list-nested.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-nested.svg new file mode 100644 index 0000000..21c9a7d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-nested.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list-ol.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-ol.svg new file mode 100644 index 0000000..5782568 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-ol.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list-stars.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-stars.svg new file mode 100644 index 0000000..88dce52 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-stars.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list-task.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-task.svg new file mode 100644 index 0000000..8118190 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-task.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list-ul.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-ul.svg new file mode 100644 index 0000000..217d153 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list-ul.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/list.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/list.svg new file mode 100644 index 0000000..e039056 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/list.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lock-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lock-fill.svg new file mode 100644 index 0000000..9fb8f7b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lock.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lock.svg new file mode 100644 index 0000000..b50a68e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lock.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lungs-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lungs-fill.svg new file mode 100644 index 0000000..430b028 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lungs-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/lungs.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/lungs.svg new file mode 100644 index 0000000..5370852 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/lungs.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/magic.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/magic.svg new file mode 100644 index 0000000..3df2ec0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/magic.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/magnet-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/magnet-fill.svg new file mode 100644 index 0000000..9ca1865 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/magnet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/magnet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/magnet.svg new file mode 100644 index 0000000..aab1763 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/magnet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mailbox.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mailbox.svg new file mode 100644 index 0000000..e2ac2f9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mailbox.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mailbox2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mailbox2.svg new file mode 100644 index 0000000..60a523b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mailbox2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/map-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/map-fill.svg new file mode 100644 index 0000000..6097c5f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/map-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/map.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/map.svg new file mode 100644 index 0000000..f9dbb08 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/map.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/markdown-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/markdown-fill.svg new file mode 100644 index 0000000..b87e236 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/markdown-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/markdown.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/markdown.svg new file mode 100644 index 0000000..f9933a6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/markdown.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mask.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mask.svg new file mode 100644 index 0000000..3bfe141 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mask.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mastodon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mastodon.svg new file mode 100644 index 0000000..23b34f5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mastodon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/medium.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/medium.svg new file mode 100644 index 0000000..cc46876 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/medium.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/megaphone-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/megaphone-fill.svg new file mode 100644 index 0000000..237e814 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/megaphone-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/megaphone.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/megaphone.svg new file mode 100644 index 0000000..834083c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/megaphone.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/memory.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/memory.svg new file mode 100644 index 0000000..cdc2943 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/memory.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-app-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-app-fill.svg new file mode 100644 index 0000000..c41c6fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-app-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-app.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-app.svg new file mode 100644 index 0000000..36e57df --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-app.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-fill.svg new file mode 100644 index 0000000..034b64d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-wide-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-wide-fill.svg new file mode 100644 index 0000000..d6e17da --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-wide-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-wide.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-wide.svg new file mode 100644 index 0000000..d67ba6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button-wide.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button.svg new file mode 100644 index 0000000..4e0fff9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-button.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-down.svg new file mode 100644 index 0000000..b2d84b2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-up.svg new file mode 100644 index 0000000..fb35e8d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/menu-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/messenger.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/messenger.svg new file mode 100644 index 0000000..5c6d37d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/messenger.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/meta.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/meta.svg new file mode 100644 index 0000000..2c6885d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/meta.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-fill.svg new file mode 100644 index 0000000..9be58e9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-mute-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-mute-fill.svg new file mode 100644 index 0000000..cc325a0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-mute-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-mute.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-mute.svg new file mode 100644 index 0000000..5a520a1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mic-mute.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mic.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mic.svg new file mode 100644 index 0000000..57be2e5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mic.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/microsoft-teams.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/microsoft-teams.svg new file mode 100644 index 0000000..e0cc253 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/microsoft-teams.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/microsoft.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/microsoft.svg new file mode 100644 index 0000000..d28281f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/microsoft.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/minecart-loaded.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/minecart-loaded.svg new file mode 100644 index 0000000..8a75457 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/minecart-loaded.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/minecart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/minecart.svg new file mode 100644 index 0000000..7f3ad00 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/minecart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/modem-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/modem-fill.svg new file mode 100644 index 0000000..1fe97be --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/modem-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/modem.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/modem.svg new file mode 100644 index 0000000..873090d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/modem.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/moisture.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/moisture.svg new file mode 100644 index 0000000..732f4ac --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/moisture.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-fill.svg new file mode 100644 index 0000000..1149676 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-stars-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-stars-fill.svg new file mode 100644 index 0000000..d2e1d6e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-stars-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-stars.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-stars.svg new file mode 100644 index 0000000..b25ef86 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/moon-stars.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/moon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/moon.svg new file mode 100644 index 0000000..4cd8820 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/moon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mortarboard-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mortarboard-fill.svg new file mode 100644 index 0000000..7f5fb48 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mortarboard-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mortarboard.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mortarboard.svg new file mode 100644 index 0000000..ed82b6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mortarboard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/motherboard-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/motherboard-fill.svg new file mode 100644 index 0000000..bf15e96 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/motherboard-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/motherboard.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/motherboard.svg new file mode 100644 index 0000000..ed13d0c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/motherboard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse-fill.svg new file mode 100644 index 0000000..bd0b5eb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse.svg new file mode 100644 index 0000000..40976e0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse2-fill.svg new file mode 100644 index 0000000..283d1cd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse2.svg new file mode 100644 index 0000000..359da4d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse3-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse3-fill.svg new file mode 100644 index 0000000..de6dbc7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse3.svg new file mode 100644 index 0000000..d042bfd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/mouse3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note-beamed.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note-beamed.svg new file mode 100644 index 0000000..04cedf0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note-beamed.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note-list.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note-list.svg new file mode 100644 index 0000000..5c306bd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note-list.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note.svg new file mode 100644 index 0000000..1125a66 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-note.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/music-player-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-player-fill.svg new file mode 100644 index 0000000..6619d1e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-player-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/music-player.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-player.svg new file mode 100644 index 0000000..2d50a63 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/music-player.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/newspaper.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/newspaper.svg new file mode 100644 index 0000000..7d7fa71 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/newspaper.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/nintendo-switch.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/nintendo-switch.svg new file mode 100644 index 0000000..0f1e2ac --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/nintendo-switch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/node-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/node-minus-fill.svg new file mode 100644 index 0000000..32430b9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/node-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/node-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/node-minus.svg new file mode 100644 index 0000000..b1accd4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/node-minus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/node-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/node-plus-fill.svg new file mode 100644 index 0000000..e5ee855 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/node-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/node-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/node-plus.svg new file mode 100644 index 0000000..085f04f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/node-plus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/nut-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/nut-fill.svg new file mode 100644 index 0000000..4babc03 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/nut-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/nut.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/nut.svg new file mode 100644 index 0000000..4912d48 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/nut.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon-fill.svg new file mode 100644 index 0000000..c128317 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon-half.svg new file mode 100644 index 0000000..d95240a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon.svg new file mode 100644 index 0000000..9f3657e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/octagon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/optical-audio-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/optical-audio-fill.svg new file mode 100644 index 0000000..5bdfd82 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/optical-audio-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/optical-audio.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/optical-audio.svg new file mode 100644 index 0000000..7a38b83 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/optical-audio.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/option.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/option.svg new file mode 100644 index 0000000..d7702b1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/option.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/outlet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/outlet.svg new file mode 100644 index 0000000..b48af60 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/outlet.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/p-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/p-circle-fill.svg new file mode 100644 index 0000000..ea54307 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/p-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/p-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/p-circle.svg new file mode 100644 index 0000000..888a1fa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/p-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/p-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/p-square-fill.svg new file mode 100644 index 0000000..ad3caa2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/p-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/p-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/p-square.svg new file mode 100644 index 0000000..ad630d0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/p-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/paint-bucket.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/paint-bucket.svg new file mode 100644 index 0000000..ee15d10 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/paint-bucket.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/palette-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/palette-fill.svg new file mode 100644 index 0000000..7dc5ecd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/palette-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/palette.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/palette.svg new file mode 100644 index 0000000..fea76d9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/palette.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/palette2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/palette2.svg new file mode 100644 index 0000000..5d140b3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/palette2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/paperclip.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/paperclip.svg new file mode 100644 index 0000000..00f311d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/paperclip.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/paragraph.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/paragraph.svg new file mode 100644 index 0000000..999cb53 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/paragraph.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pass-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pass-fill.svg new file mode 100644 index 0000000..a5715df --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pass-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pass.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pass.svg new file mode 100644 index 0000000..3f51eb5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pass.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-check-fill.svg new file mode 100644 index 0000000..1301415 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-check.svg new file mode 100644 index 0000000..2dd799e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-exclamation-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-exclamation-fill.svg new file mode 100644 index 0000000..fd900c4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-exclamation-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-exclamation.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-exclamation.svg new file mode 100644 index 0000000..153d97d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-minus-fill.svg new file mode 100644 index 0000000..12f35c2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-minus.svg new file mode 100644 index 0000000..f6024f9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-plus-fill.svg new file mode 100644 index 0000000..1a79d79 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-plus.svg new file mode 100644 index 0000000..b9a7846 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-question-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-question-fill.svg new file mode 100644 index 0000000..665588b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-question-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-question.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-question.svg new file mode 100644 index 0000000..ef4ca58 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/patch-question.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-btn-fill.svg new file mode 100644 index 0000000..efca142 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-btn.svg new file mode 100644 index 0000000..0e9eb3a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-circle-fill.svg new file mode 100644 index 0000000..5e3525f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-circle.svg new file mode 100644 index 0000000..1b6b64a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-fill.svg new file mode 100644 index 0000000..68285b2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pause.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause.svg new file mode 100644 index 0000000..22478ea --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pause.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/paypal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/paypal.svg new file mode 100644 index 0000000..41bd536 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/paypal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-display-horizontal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-display-horizontal.svg new file mode 100644 index 0000000..2013f15 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-display-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-display.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-display.svg new file mode 100644 index 0000000..f5d09da --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-display.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-horizontal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-horizontal.svg new file mode 100644 index 0000000..9ae513a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pc-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pc.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pc.svg new file mode 100644 index 0000000..f0f280d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pc.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pci-card.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pci-card.svg new file mode 100644 index 0000000..600a5d0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pci-card.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/peace-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/peace-fill.svg new file mode 100644 index 0000000..c8ed5bd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/peace-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/peace.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/peace.svg new file mode 100644 index 0000000..3e4420b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/peace.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pen-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pen-fill.svg new file mode 100644 index 0000000..b7bb337 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pen-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pen.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pen.svg new file mode 100644 index 0000000..8eb3be7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil-fill.svg new file mode 100644 index 0000000..59d2830 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil-square.svg new file mode 100644 index 0000000..b8c90d5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil.svg new file mode 100644 index 0000000..f8dbfeb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pencil.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon-fill.svg new file mode 100644 index 0000000..9c80789 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon-half.svg new file mode 100644 index 0000000..305125c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon.svg new file mode 100644 index 0000000..b6f5fe3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pentagon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/people-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/people-fill.svg new file mode 100644 index 0000000..2c7389d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/people-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/people.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/people.svg new file mode 100644 index 0000000..528933d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/people.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/percent.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/percent.svg new file mode 100644 index 0000000..8af2bc4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/percent.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-badge-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-badge-fill.svg new file mode 100644 index 0000000..d9ebe67 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-badge-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-badge.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-badge.svg new file mode 100644 index 0000000..d071d44 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-badge.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-bounding-box.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-bounding-box.svg new file mode 100644 index 0000000..92e662c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-bounding-box.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-check-fill.svg new file mode 100644 index 0000000..872497a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-check.svg new file mode 100644 index 0000000..c4b1e38 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-circle.svg new file mode 100644 index 0000000..fd7f2c9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-dash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-dash-fill.svg new file mode 100644 index 0000000..fd719f2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-dash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-dash.svg new file mode 100644 index 0000000..4c6cb79 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-fill.svg new file mode 100644 index 0000000..6e12768 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-heart.svg new file mode 100644 index 0000000..e9ebbf4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-hearts.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-hearts.svg new file mode 100644 index 0000000..06970be --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-hearts.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-lines-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-lines-fill.svg new file mode 100644 index 0000000..736421c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-lines-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-plus-fill.svg new file mode 100644 index 0000000..151ccfe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-plus.svg new file mode 100644 index 0000000..aac3a67 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-rolodex.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-rolodex.svg new file mode 100644 index 0000000..af898ca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-rolodex.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-square.svg new file mode 100644 index 0000000..a7eb40e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video.svg new file mode 100644 index 0000000..b8c1995 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video2.svg new file mode 100644 index 0000000..3f4292e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video3.svg new file mode 100644 index 0000000..be38b24 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-video3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-workspace.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-workspace.svg new file mode 100644 index 0000000..e72bea0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-workspace.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-x-fill.svg new file mode 100644 index 0000000..d4903a6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-x.svg new file mode 100644 index 0000000..d7ac8f6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/person.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/person.svg new file mode 100644 index 0000000..022d1e9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/person.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-fill.svg new file mode 100644 index 0000000..a2dfd03 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-flip.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-flip.svg new file mode 100644 index 0000000..54e2d26 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-flip.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-landscape-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-landscape-fill.svg new file mode 100644 index 0000000..295481c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-landscape-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-landscape.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-landscape.svg new file mode 100644 index 0000000..65cd273 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-landscape.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-vibrate-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-vibrate-fill.svg new file mode 100644 index 0000000..6e61ecc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-vibrate-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-vibrate.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-vibrate.svg new file mode 100644 index 0000000..f380cab --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone-vibrate.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/phone.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone.svg new file mode 100644 index 0000000..3f3fd74 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/phone.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pie-chart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pie-chart-fill.svg new file mode 100644 index 0000000..6aa71eb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pie-chart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pie-chart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pie-chart.svg new file mode 100644 index 0000000..a20f6a7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pie-chart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/piggy-bank-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/piggy-bank-fill.svg new file mode 100644 index 0000000..b44f35d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/piggy-bank-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/piggy-bank.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/piggy-bank.svg new file mode 100644 index 0000000..1d836ce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/piggy-bank.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-angle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-angle-fill.svg new file mode 100644 index 0000000..3112c0b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-angle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-angle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-angle.svg new file mode 100644 index 0000000..a07b038 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-angle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-fill.svg new file mode 100644 index 0000000..f00b790 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-map-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-map-fill.svg new file mode 100644 index 0000000..b8c8502 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-map-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-map.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-map.svg new file mode 100644 index 0000000..f04129a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin-map.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pin.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin.svg new file mode 100644 index 0000000..45fd7de --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pinterest.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pinterest.svg new file mode 100644 index 0000000..b4fbc23 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pinterest.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pip-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pip-fill.svg new file mode 100644 index 0000000..1869f78 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pip-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/pip.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/pip.svg new file mode 100644 index 0000000..58f0638 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/pip.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/play-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-btn-fill.svg new file mode 100644 index 0000000..18b9167 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/play-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-btn.svg new file mode 100644 index 0000000..576e30b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/play-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-circle-fill.svg new file mode 100644 index 0000000..511ef37 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/play-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-circle.svg new file mode 100644 index 0000000..c93144a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/play-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-fill.svg new file mode 100644 index 0000000..28f2e67 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/play-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/play.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/play.svg new file mode 100644 index 0000000..b3fd3dc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/play.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/playstation.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/playstation.svg new file mode 100644 index 0000000..f8ce05b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/playstation.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plug-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plug-fill.svg new file mode 100644 index 0000000..d15b8e6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plug-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plug.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plug.svg new file mode 100644 index 0000000..c5e6688 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plug.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plugin.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plugin.svg new file mode 100644 index 0000000..3f179a3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plugin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle-dotted.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle-dotted.svg new file mode 100644 index 0000000..c69316e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle-dotted.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle-fill.svg new file mode 100644 index 0000000..f320116 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle.svg new file mode 100644 index 0000000..66308ef --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-lg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-lg.svg new file mode 100644 index 0000000..f821cc3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-slash-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-slash-minus.svg new file mode 100644 index 0000000..44a8e0e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-slash-minus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square-dotted.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square-dotted.svg new file mode 100644 index 0000000..4ae7ad6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square-dotted.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square-fill.svg new file mode 100644 index 0000000..0d5e15c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square.svg new file mode 100644 index 0000000..15c4c44 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus.svg new file mode 100644 index 0000000..5b088c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/plus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-fill.svg new file mode 100644 index 0000000..701a1c6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-heart-fill.svg new file mode 100644 index 0000000..a268901 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-heart.svg new file mode 100644 index 0000000..4d22b18 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/postage-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/postage.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/postage.svg new file mode 100644 index 0000000..cc49c70 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/postage.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-fill.svg new file mode 100644 index 0000000..01b54dd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-heart-fill.svg new file mode 100644 index 0000000..5e551fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-heart.svg new file mode 100644 index 0000000..e0f2f05 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard.svg new file mode 100644 index 0000000..827180e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/postcard.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/power.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/power.svg new file mode 100644 index 0000000..6fb9756 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/power.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/prescription.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/prescription.svg new file mode 100644 index 0000000..a0f4556 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/prescription.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/prescription2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/prescription2.svg new file mode 100644 index 0000000..018ca91 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/prescription2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/printer-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/printer-fill.svg new file mode 100644 index 0000000..485d987 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/printer-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/printer.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/printer.svg new file mode 100644 index 0000000..60196bc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/printer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/projector-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/projector-fill.svg new file mode 100644 index 0000000..ff6a341 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/projector-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/projector.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/projector.svg new file mode 100644 index 0000000..218c6a5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/projector.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/puzzle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/puzzle-fill.svg new file mode 100644 index 0000000..e9bbfae --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/puzzle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/puzzle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/puzzle.svg new file mode 100644 index 0000000..c9b07a2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/puzzle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/qr-code-scan.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/qr-code-scan.svg new file mode 100644 index 0000000..7eb599e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/qr-code-scan.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/qr-code.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/qr-code.svg new file mode 100644 index 0000000..bf5570d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/qr-code.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-circle-fill.svg new file mode 100644 index 0000000..d8e5e06 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-circle.svg new file mode 100644 index 0000000..1c8cbe7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-diamond-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-diamond-fill.svg new file mode 100644 index 0000000..a86583b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-diamond.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-diamond.svg new file mode 100644 index 0000000..a7d8233 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-diamond.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-lg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-lg.svg new file mode 100644 index 0000000..fa3452e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-octagon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-octagon-fill.svg new file mode 100644 index 0000000..2ff954e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-octagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-octagon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-octagon.svg new file mode 100644 index 0000000..02e8ffe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-octagon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-square-fill.svg new file mode 100644 index 0000000..dd72410 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-square.svg new file mode 100644 index 0000000..d0a56ff --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/question.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/question.svg new file mode 100644 index 0000000..05abe29 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/question.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/quora.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/quora.svg new file mode 100644 index 0000000..e90e571 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/quora.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/quote.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/quote.svg new file mode 100644 index 0000000..03b45bf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/quote.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/r-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/r-circle-fill.svg new file mode 100644 index 0000000..c2386c3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/r-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/r-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/r-circle.svg new file mode 100644 index 0000000..ab5c574 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/r-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/r-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/r-square-fill.svg new file mode 100644 index 0000000..e039b8a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/r-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/r-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/r-square.svg new file mode 100644 index 0000000..37ddc6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/r-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/radioactive.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/radioactive.svg new file mode 100644 index 0000000..1b1072f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/radioactive.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rainbow.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rainbow.svg new file mode 100644 index 0000000..8e8aea7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rainbow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/receipt-cutoff.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/receipt-cutoff.svg new file mode 100644 index 0000000..27be3c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/receipt-cutoff.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/receipt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/receipt.svg new file mode 100644 index 0000000..9ea7283 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/receipt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-0.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-0.svg new file mode 100644 index 0000000..885bf3b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-0.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-1.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-1.svg new file mode 100644 index 0000000..3deafb6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-2.svg new file mode 100644 index 0000000..7dca57a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-3.svg new file mode 100644 index 0000000..b30d5fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-4.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-4.svg new file mode 100644 index 0000000..611bdf1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reception-4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/record-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-btn-fill.svg new file mode 100644 index 0000000..caa3ea1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/record-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-btn.svg new file mode 100644 index 0000000..4fd261c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/record-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-circle-fill.svg new file mode 100644 index 0000000..2c2429a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/record-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-circle.svg new file mode 100644 index 0000000..d45d91c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/record-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-fill.svg new file mode 100644 index 0000000..d474393 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/record-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/record.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/record.svg new file mode 100644 index 0000000..27f82a9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/record.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/record2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/record2-fill.svg new file mode 100644 index 0000000..7648928 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/record2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/record2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/record2.svg new file mode 100644 index 0000000..43a1150 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/record2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/recycle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/recycle.svg new file mode 100644 index 0000000..e4fa6c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/recycle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reddit.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reddit.svg new file mode 100644 index 0000000..b1c9cfe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reddit.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/repeat-1.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/repeat-1.svg new file mode 100644 index 0000000..07f4a8b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/repeat-1.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/repeat.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/repeat.svg new file mode 100644 index 0000000..0f6d54d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/repeat.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-all-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-all-fill.svg new file mode 100644 index 0000000..7b77b06 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-all-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-all.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-all.svg new file mode 100644 index 0000000..c95025b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-all.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-fill.svg new file mode 100644 index 0000000..b5a8722 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reply-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/reply.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/reply.svg new file mode 100644 index 0000000..c2dc098 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/reply.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-btn-fill.svg new file mode 100644 index 0000000..5136147 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-btn.svg new file mode 100644 index 0000000..45c0232 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-circle-fill.svg new file mode 100644 index 0000000..afdaaf3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-circle.svg new file mode 100644 index 0000000..054fd95 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-fill.svg new file mode 100644 index 0000000..79596e0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind.svg new file mode 100644 index 0000000..58684d4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rewind.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/robot.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/robot.svg new file mode 100644 index 0000000..526cb99 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/robot.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/router-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/router-fill.svg new file mode 100644 index 0000000..de050cf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/router-fill.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/router.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/router.svg new file mode 100644 index 0000000..8fa22d0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/router.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rss-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rss-fill.svg new file mode 100644 index 0000000..39bef06 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rss-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rss.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rss.svg new file mode 100644 index 0000000..be41f20 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rss.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/rulers.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/rulers.svg new file mode 100644 index 0000000..e9891c9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/rulers.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/safe-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/safe-fill.svg new file mode 100644 index 0000000..1036d67 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/safe-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/safe.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/safe.svg new file mode 100644 index 0000000..fb5b7cb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/safe.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/safe2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/safe2-fill.svg new file mode 100644 index 0000000..d1d37f2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/safe2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/safe2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/safe2.svg new file mode 100644 index 0000000..37bfbe8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/safe2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/save-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/save-fill.svg new file mode 100644 index 0000000..0a43dc1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/save-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/save.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/save.svg new file mode 100644 index 0000000..26b8aed --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/save.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/save2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/save2-fill.svg new file mode 100644 index 0000000..45feb59 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/save2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/save2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/save2.svg new file mode 100644 index 0000000..52bc9e4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/save2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/scissors.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/scissors.svg new file mode 100644 index 0000000..ab71b0d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/scissors.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/screwdriver.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/screwdriver.svg new file mode 100644 index 0000000..dc9c374 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/screwdriver.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sd-card-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sd-card-fill.svg new file mode 100644 index 0000000..9fe36b6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sd-card-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sd-card.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sd-card.svg new file mode 100644 index 0000000..12ed59f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sd-card.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/search-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/search-heart-fill.svg new file mode 100644 index 0000000..54e31c7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/search-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/search-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/search-heart.svg new file mode 100644 index 0000000..92ea059 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/search-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/search.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/search.svg new file mode 100644 index 0000000..d3dc7ca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/search.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/segmented-nav.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/segmented-nav.svg new file mode 100644 index 0000000..42323b2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/segmented-nav.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-check-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-check-fill.svg new file mode 100644 index 0000000..4b0a56a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-check.svg new file mode 100644 index 0000000..581ebbe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-dash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-dash-fill.svg new file mode 100644 index 0000000..254329c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-dash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-dash.svg new file mode 100644 index 0000000..abfbad3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-exclamation-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-exclamation-fill.svg new file mode 100644 index 0000000..5a77e98 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-exclamation-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-exclamation.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-exclamation.svg new file mode 100644 index 0000000..149a7f7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-fill.svg new file mode 100644 index 0000000..2a84015 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-plus-fill.svg new file mode 100644 index 0000000..bea3738 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-plus.svg new file mode 100644 index 0000000..4120228 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-slash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-slash-fill.svg new file mode 100644 index 0000000..3345687 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-slash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-slash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-slash.svg new file mode 100644 index 0000000..782daf3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-x-fill.svg new file mode 100644 index 0000000..ce102ba --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-x-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-x.svg new file mode 100644 index 0000000..c8bc8bf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/send.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/send.svg new file mode 100644 index 0000000..c81fc95 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/send.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/server.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/server.svg new file mode 100644 index 0000000..ff85feb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/server.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/share-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/share-fill.svg new file mode 100644 index 0000000..8b0ee88 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/share-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/share.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/share.svg new file mode 100644 index 0000000..79d3075 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/share.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-check.svg new file mode 100644 index 0000000..ecbf543 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-exclamation.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-exclamation.svg new file mode 100644 index 0000000..825de04 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-check.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-check.svg new file mode 100644 index 0000000..a72b2ba --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-check.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-exclamation.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-exclamation.svg new file mode 100644 index 0000000..b489a68 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-exclamation.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-minus.svg new file mode 100644 index 0000000..b9b9129 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-minus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-plus.svg new file mode 100644 index 0000000..aec96d1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-plus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-x.svg new file mode 100644 index 0000000..d384af4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill-x.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill.svg new file mode 100644 index 0000000..d1d877d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-lock-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-lock-fill.svg new file mode 100644 index 0000000..e4c96b4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-lock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-lock.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-lock.svg new file mode 100644 index 0000000..ff38425 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-minus.svg new file mode 100644 index 0000000..d1cedfd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-plus.svg new file mode 100644 index 0000000..77bcb1a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-shaded.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-shaded.svg new file mode 100644 index 0000000..9c4af1a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-shaded.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-slash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-slash-fill.svg new file mode 100644 index 0000000..015d11b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-slash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-slash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-slash.svg new file mode 100644 index 0000000..234afa2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-x.svg new file mode 100644 index 0000000..3fe1666 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shield.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield.svg new file mode 100644 index 0000000..18309d1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shield.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shift-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shift-fill.svg new file mode 100644 index 0000000..da897bc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shift-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shift.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shift.svg new file mode 100644 index 0000000..59a88ef --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shift.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shop-window.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shop-window.svg new file mode 100644 index 0000000..a306cfa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shop-window.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shop.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shop.svg new file mode 100644 index 0000000..223d77b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shop.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/shuffle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/shuffle.svg new file mode 100644 index 0000000..83bf20c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/shuffle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-fill.svg new file mode 100644 index 0000000..d9b51dc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-lights-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-lights-fill.svg new file mode 100644 index 0000000..30c81be --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-lights-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-lights.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-lights.svg new file mode 100644 index 0000000..297320a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop-lights.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop.svg new file mode 100644 index 0000000..14def74 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-stop.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-left-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-left-fill.svg new file mode 100644 index 0000000..1c82bca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-left.svg new file mode 100644 index 0000000..bea00b7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-right-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-right-fill.svg new file mode 100644 index 0000000..97c6343 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-right.svg new file mode 100644 index 0000000..da447db --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-left-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-left-fill.svg new file mode 100644 index 0000000..9d56175 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-left.svg new file mode 100644 index 0000000..79475ad --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-right-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-right-fill.svg new file mode 100644 index 0000000..1749e66 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-right.svg new file mode 100644 index 0000000..cf22c01 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-turn-slight-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-yield-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-yield-fill.svg new file mode 100644 index 0000000..ecad4fa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-yield-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-yield.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-yield.svg new file mode 100644 index 0000000..aabf3fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sign-yield.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/signal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/signal.svg new file mode 100644 index 0000000..4220d48 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/signal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-2-fill.svg new file mode 100644 index 0000000..cc51e51 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-2.svg new file mode 100644 index 0000000..6a18b3b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-fill.svg new file mode 100644 index 0000000..f95f257 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-split-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-split-fill.svg new file mode 100644 index 0000000..86aa086 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-split-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-split.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-split.svg new file mode 100644 index 0000000..0168ae5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost-split.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost.svg new file mode 100644 index 0000000..90a8882 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/signpost.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sim-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sim-fill.svg new file mode 100644 index 0000000..c8e2c29 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sim-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sim.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sim.svg new file mode 100644 index 0000000..cc0e869 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sim.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-btn-fill.svg new file mode 100644 index 0000000..bf06429 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-btn.svg new file mode 100644 index 0000000..b04455e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-circle-fill.svg new file mode 100644 index 0000000..f6b6e4d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-circle.svg new file mode 100644 index 0000000..63e2a19 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-fill.svg new file mode 100644 index 0000000..a0ce53c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward.svg new file mode 100644 index 0000000..9be60fe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-backward.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-btn-fill.svg new file mode 100644 index 0000000..55bf1ba --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-btn.svg new file mode 100644 index 0000000..6c5b044 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-circle-fill.svg new file mode 100644 index 0000000..e303750 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-circle.svg new file mode 100644 index 0000000..39e8cd3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-fill.svg new file mode 100644 index 0000000..fa90d3f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end.svg new file mode 100644 index 0000000..40d6fa9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-end.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-btn-fill.svg new file mode 100644 index 0000000..b767e9c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-btn.svg new file mode 100644 index 0000000..f67d3a8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-circle-fill.svg new file mode 100644 index 0000000..00cea35 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-circle.svg new file mode 100644 index 0000000..3b55d7e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-fill.svg new file mode 100644 index 0000000..c4071aa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward.svg new file mode 100644 index 0000000..a1c4720 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-forward.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-btn-fill.svg new file mode 100644 index 0000000..56a1370 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-btn.svg new file mode 100644 index 0000000..c86afbe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-circle-fill.svg new file mode 100644 index 0000000..b6d13b0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-circle.svg new file mode 100644 index 0000000..f9664d9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-fill.svg new file mode 100644 index 0000000..c4295fc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start.svg new file mode 100644 index 0000000..a178e0e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skip-start.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/skype.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/skype.svg new file mode 100644 index 0000000..b3beaf9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/skype.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/slack.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/slack.svg new file mode 100644 index 0000000..f4aa6e6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/slack.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-circle-fill.svg new file mode 100644 index 0000000..f703101 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-circle.svg new file mode 100644 index 0000000..4c1344b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-lg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-lg.svg new file mode 100644 index 0000000..161b6ec --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-square-fill.svg new file mode 100644 index 0000000..c7a3935 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-square.svg new file mode 100644 index 0000000..ccf42bd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/slash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash.svg new file mode 100644 index 0000000..9616561 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders.svg new file mode 100644 index 0000000..da4b835 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders2-vertical.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders2-vertical.svg new file mode 100644 index 0000000..c474281 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders2-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders2.svg new file mode 100644 index 0000000..86fa70c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sliders2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/smartwatch.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/smartwatch.svg new file mode 100644 index 0000000..696bd33 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/smartwatch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/snapchat.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/snapchat.svg new file mode 100644 index 0000000..505f55a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/snapchat.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/snow.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/snow.svg new file mode 100644 index 0000000..9b648a5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/snow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/snow2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/snow2.svg new file mode 100644 index 0000000..cede335 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/snow2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/snow3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/snow3.svg new file mode 100644 index 0000000..75e5ef2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/snow3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-down-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-down-alt.svg new file mode 100644 index 0000000..fa4f4fa --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-down-alt.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-down.svg new file mode 100644 index 0000000..e0fcad0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-up-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-up-alt.svg new file mode 100644 index 0000000..69c1a39 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-up-alt.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-up.svg new file mode 100644 index 0000000..0be5e68 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-alpha-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-down-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-down-alt.svg new file mode 100644 index 0000000..d7f7fc8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-down-alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-down.svg new file mode 100644 index 0000000..848834c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-down-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-down-alt.svg new file mode 100644 index 0000000..8c39a5a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-down-alt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-down.svg new file mode 100644 index 0000000..57a3fb0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-down.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-up-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-up-alt.svg new file mode 100644 index 0000000..e8edf88 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-up-alt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-up.svg new file mode 100644 index 0000000..1cd0a37 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-numeric-up.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-up-alt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-up-alt.svg new file mode 100644 index 0000000..96650d5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-up-alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-up.svg new file mode 100644 index 0000000..2158801 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sort-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/soundwave.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/soundwave.svg new file mode 100644 index 0000000..288f108 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/soundwave.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/speaker-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/speaker-fill.svg new file mode 100644 index 0000000..bae80e2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/speaker-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/speaker.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/speaker.svg new file mode 100644 index 0000000..461626d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/speaker.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/speedometer.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/speedometer.svg new file mode 100644 index 0000000..5a0a43c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/speedometer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/speedometer2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/speedometer2.svg new file mode 100644 index 0000000..d5676df --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/speedometer2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/spellcheck.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/spellcheck.svg new file mode 100644 index 0000000..029950f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/spellcheck.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/spotify.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/spotify.svg new file mode 100644 index 0000000..31b4238 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/spotify.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/square-fill.svg new file mode 100644 index 0000000..31bae4f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/square-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/square-half.svg new file mode 100644 index 0000000..3f8179d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/square-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/square.svg new file mode 100644 index 0000000..ded82d4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stack-overflow.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stack-overflow.svg new file mode 100644 index 0000000..b7d482d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stack-overflow.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stack.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stack.svg new file mode 100644 index 0000000..b8a9c94 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/star-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/star-fill.svg new file mode 100644 index 0000000..de09c4a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/star-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/star-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/star-half.svg new file mode 100644 index 0000000..8d30e7e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/star-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/star.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/star.svg new file mode 100644 index 0000000..742b5e2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/star.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stars.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stars.svg new file mode 100644 index 0000000..2c16677 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stars.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/steam.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/steam.svg new file mode 100644 index 0000000..aecd433 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/steam.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stickies-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stickies-fill.svg new file mode 100644 index 0000000..a0252da --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stickies-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stickies.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stickies.svg new file mode 100644 index 0000000..8252c49 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stickies.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sticky-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sticky-fill.svg new file mode 100644 index 0000000..acd42b9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sticky-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sticky.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sticky.svg new file mode 100644 index 0000000..dba0142 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sticky.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-btn-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-btn-fill.svg new file mode 100644 index 0000000..58b6c02 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-btn.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-btn.svg new file mode 100644 index 0000000..5c392ec --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-circle-fill.svg new file mode 100644 index 0000000..ac711e0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-circle.svg new file mode 100644 index 0000000..441613c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-fill.svg new file mode 100644 index 0000000..e00085a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stop.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop.svg new file mode 100644 index 0000000..2b86647 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stop.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stoplights-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stoplights-fill.svg new file mode 100644 index 0000000..a18566b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stoplights-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stoplights.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stoplights.svg new file mode 100644 index 0000000..f765ab2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stoplights.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stopwatch-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stopwatch-fill.svg new file mode 100644 index 0000000..2d2ed11 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stopwatch-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/stopwatch.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/stopwatch.svg new file mode 100644 index 0000000..964dbb8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/stopwatch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/strava.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/strava.svg new file mode 100644 index 0000000..7e3237d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/strava.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/subtract.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/subtract.svg new file mode 100644 index 0000000..e1d878a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/subtract.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-club-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-club-fill.svg new file mode 100644 index 0000000..d4d311a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-club-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-club.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-club.svg new file mode 100644 index 0000000..75e5e85 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-club.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-diamond-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-diamond-fill.svg new file mode 100644 index 0000000..2be1b7f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-diamond.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-diamond.svg new file mode 100644 index 0000000..9192a27 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-diamond.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-heart-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-heart-fill.svg new file mode 100644 index 0000000..0dd86f9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-heart.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-heart.svg new file mode 100644 index 0000000..c761ef4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-spade-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-spade-fill.svg new file mode 100644 index 0000000..63bb0c6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-spade-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-spade.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-spade.svg new file mode 100644 index 0000000..8f14427 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/suit-spade.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sun-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sun-fill.svg new file mode 100644 index 0000000..cc1a60e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sun-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sun.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sun.svg new file mode 100644 index 0000000..c311208 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sun.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sunglasses.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunglasses.svg new file mode 100644 index 0000000..3f7dad0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunglasses.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sunrise-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunrise-fill.svg new file mode 100644 index 0000000..eb6a668 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunrise-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sunrise.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunrise.svg new file mode 100644 index 0000000..53d670d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunrise.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sunset-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunset-fill.svg new file mode 100644 index 0000000..7f5b60e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunset-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/sunset.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunset.svg new file mode 100644 index 0000000..91041cf --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/sunset.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/symmetry-horizontal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/symmetry-horizontal.svg new file mode 100644 index 0000000..7e46d90 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/symmetry-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/symmetry-vertical.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/symmetry-vertical.svg new file mode 100644 index 0000000..a18fa2f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/symmetry-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/table.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/table.svg new file mode 100644 index 0000000..5e70d22 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/table.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-fill.svg new file mode 100644 index 0000000..571ae8f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-landscape-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-landscape-fill.svg new file mode 100644 index 0000000..a4a6048 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-landscape-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-landscape.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-landscape.svg new file mode 100644 index 0000000..b36f7d4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet-landscape.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet.svg new file mode 100644 index 0000000..be81ff5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tablet.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tag-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tag-fill.svg new file mode 100644 index 0000000..1502792 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tag-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tag.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tag.svg new file mode 100644 index 0000000..ab34fdd --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tag.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tags-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tags-fill.svg new file mode 100644 index 0000000..f92a361 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tags-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tags.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tags.svg new file mode 100644 index 0000000..9f6d676 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tags.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telegram.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telegram.svg new file mode 100644 index 0000000..139af07 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telegram.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-fill.svg new file mode 100644 index 0000000..efc72c0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-forward-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-forward-fill.svg new file mode 100644 index 0000000..f4ce483 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-forward-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-forward.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-forward.svg new file mode 100644 index 0000000..17ec9ce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-forward.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-inbound-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-inbound-fill.svg new file mode 100644 index 0000000..998c8fb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-inbound-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-inbound.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-inbound.svg new file mode 100644 index 0000000..460fe9f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-inbound.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-minus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-minus-fill.svg new file mode 100644 index 0000000..bc17abb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-minus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-minus.svg new file mode 100644 index 0000000..4f4d93c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-outbound-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-outbound-fill.svg new file mode 100644 index 0000000..16013a5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-outbound-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-outbound.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-outbound.svg new file mode 100644 index 0000000..1382886 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-outbound.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-plus-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-plus-fill.svg new file mode 100644 index 0000000..6d8c58f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-plus.svg new file mode 100644 index 0000000..21ef909 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-x-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-x-fill.svg new file mode 100644 index 0000000..c8ef894 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-x.svg new file mode 100644 index 0000000..5aa3f95 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone.svg new file mode 100644 index 0000000..8e359b8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/telephone.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-dash.svg new file mode 100644 index 0000000..9049b5e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-fill.svg new file mode 100644 index 0000000..d3c6394 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-plus.svg new file mode 100644 index 0000000..be268c8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-split.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-split.svg new file mode 100644 index 0000000..f65d2c7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-split.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-x.svg new file mode 100644 index 0000000..5128f11 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal.svg new file mode 100644 index 0000000..e12c9f8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/terminal.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/text-center.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-center.svg new file mode 100644 index 0000000..2887a99 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-center.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/text-indent-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-indent-left.svg new file mode 100644 index 0000000..34d8c55 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-indent-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/text-indent-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-indent-right.svg new file mode 100644 index 0000000..fdd837f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-indent-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/text-left.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-left.svg new file mode 100644 index 0000000..0452611 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/text-paragraph.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-paragraph.svg new file mode 100644 index 0000000..9779bea --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-paragraph.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/text-right.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-right.svg new file mode 100644 index 0000000..34686b0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/text-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea-resize.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea-resize.svg new file mode 100644 index 0000000..c4a9d9f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea-resize.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea-t.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea-t.svg new file mode 100644 index 0000000..dc7e17c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea-t.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea.svg new file mode 100644 index 0000000..9aa5445 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/textarea.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-half.svg new file mode 100644 index 0000000..cafefd2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-half.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-high.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-high.svg new file mode 100644 index 0000000..15acf4c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-high.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-low.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-low.svg new file mode 100644 index 0000000..ce540e0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-low.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-snow.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-snow.svg new file mode 100644 index 0000000..0e1b400 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-snow.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-sun.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-sun.svg new file mode 100644 index 0000000..07c3290 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer-sun.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer.svg new file mode 100644 index 0000000..748813e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/thermometer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/three-dots-vertical.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/three-dots-vertical.svg new file mode 100644 index 0000000..cd0c79a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/three-dots-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/three-dots.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/three-dots.svg new file mode 100644 index 0000000..ea92369 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/three-dots.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/thunderbolt-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/thunderbolt-fill.svg new file mode 100644 index 0000000..85c437e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/thunderbolt-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/thunderbolt.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/thunderbolt.svg new file mode 100644 index 0000000..b8356da --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/thunderbolt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-detailed-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-detailed-fill.svg new file mode 100644 index 0000000..bc5d192 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-detailed-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-detailed.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-detailed.svg new file mode 100644 index 0000000..c2701bb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-detailed.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-fill.svg new file mode 100644 index 0000000..73728b6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-perforated-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-perforated-fill.svg new file mode 100644 index 0000000..2ec1d57 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-perforated-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-perforated.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-perforated.svg new file mode 100644 index 0000000..194ae05 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket-perforated.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket.svg new file mode 100644 index 0000000..f24a93e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ticket.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tiktok.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tiktok.svg new file mode 100644 index 0000000..7edac4e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tiktok.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle-off.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle-off.svg new file mode 100644 index 0000000..97d6dab --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle-on.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle-on.svg new file mode 100644 index 0000000..d13b495 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle-on.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle2-off.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle2-off.svg new file mode 100644 index 0000000..a8fee6b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle2-off.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle2-on.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle2-on.svg new file mode 100644 index 0000000..993ec33 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggle2-on.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/toggles.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggles.svg new file mode 100644 index 0000000..d53ae01 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggles.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/toggles2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggles2.svg new file mode 100644 index 0000000..862fc9f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/toggles2.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tools.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tools.svg new file mode 100644 index 0000000..fcc8362 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tools.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tornado.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tornado.svg new file mode 100644 index 0000000..5bb53a2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tornado.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/train-freight-front-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-freight-front-fill.svg new file mode 100644 index 0000000..54210a7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-freight-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/train-freight-front.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-freight-front.svg new file mode 100644 index 0000000..f1080fe --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-freight-front.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/train-front-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-front-fill.svg new file mode 100644 index 0000000..0895443 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/train-front.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-front.svg new file mode 100644 index 0000000..672ed4b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-front.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/train-lightrail-front-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-lightrail-front-fill.svg new file mode 100644 index 0000000..881ffbc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-lightrail-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/train-lightrail-front.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-lightrail-front.svg new file mode 100644 index 0000000..db5f945 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/train-lightrail-front.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/translate.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/translate.svg new file mode 100644 index 0000000..39a17d2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/translate.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/trash-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash-fill.svg new file mode 100644 index 0000000..1a20e6a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/trash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash.svg new file mode 100644 index 0000000..0ba7218 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/trash2-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash2-fill.svg new file mode 100644 index 0000000..bc78b6d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/trash2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash2.svg new file mode 100644 index 0000000..6e6468e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/trash3-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash3-fill.svg new file mode 100644 index 0000000..e0e81f1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/trash3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash3.svg new file mode 100644 index 0000000..1d5f42e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/trash3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tree-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tree-fill.svg new file mode 100644 index 0000000..4d45dd4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tree-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tree.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tree.svg new file mode 100644 index 0000000..b97eb64 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tree.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle-fill.svg new file mode 100644 index 0000000..654787f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle-half.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle-half.svg new file mode 100644 index 0000000..8f86f28 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle.svg new file mode 100644 index 0000000..1fa1898 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/triangle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/trophy-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/trophy-fill.svg new file mode 100644 index 0000000..e29f001 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/trophy-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/trophy.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/trophy.svg new file mode 100644 index 0000000..adfa108 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/trophy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tropical-storm.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tropical-storm.svg new file mode 100644 index 0000000..c16188d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tropical-storm.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-flatbed.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-flatbed.svg new file mode 100644 index 0000000..5a37c8d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-flatbed.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-front-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-front-fill.svg new file mode 100644 index 0000000..f5b63e3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-front.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-front.svg new file mode 100644 index 0000000..a676a71 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/truck-front.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/truck.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/truck.svg new file mode 100644 index 0000000..1afc549 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/truck.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tsunami.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tsunami.svg new file mode 100644 index 0000000..cf57486 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tsunami.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tv-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tv-fill.svg new file mode 100644 index 0000000..bf9830f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tv-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/tv.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/tv.svg new file mode 100644 index 0000000..bba3da1 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/tv.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/twitch.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/twitch.svg new file mode 100644 index 0000000..2975f80 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/twitch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/twitter.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/twitter.svg new file mode 100644 index 0000000..8a83fa6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/twitter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/type-bold.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-bold.svg new file mode 100644 index 0000000..276d133 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-bold.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h1.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h1.svg new file mode 100644 index 0000000..4c89181 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h2.svg new file mode 100644 index 0000000..b6ab765 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h3.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h3.svg new file mode 100644 index 0000000..154c293 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-h3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/type-italic.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-italic.svg new file mode 100644 index 0000000..3ac6b09 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-italic.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/type-strikethrough.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-strikethrough.svg new file mode 100644 index 0000000..1c940e4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-strikethrough.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/type-underline.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-underline.svg new file mode 100644 index 0000000..c299b8b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/type-underline.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/type.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/type.svg new file mode 100644 index 0000000..9ab1e4c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/type.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ubuntu.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ubuntu.svg new file mode 100644 index 0000000..27f8c27 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ubuntu.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-checks-grid.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-checks-grid.svg new file mode 100644 index 0000000..a32d424 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-checks-grid.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-checks.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-checks.svg new file mode 100644 index 0000000..9b659e2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-checks.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-radios-grid.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-radios-grid.svg new file mode 100644 index 0000000..00c7b08 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-radios-grid.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-radios.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-radios.svg new file mode 100644 index 0000000..da779af --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/ui-radios.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/umbrella-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/umbrella-fill.svg new file mode 100644 index 0000000..c4886e9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/umbrella-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/umbrella.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/umbrella.svg new file mode 100644 index 0000000..94f32f9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/umbrella.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/unindent.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/unindent.svg new file mode 100644 index 0000000..1969283 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/unindent.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/union.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/union.svg new file mode 100644 index 0000000..b629b88 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/union.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/unity.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/unity.svg new file mode 100644 index 0000000..e179a38 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/unity.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/universal-access-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/universal-access-circle.svg new file mode 100644 index 0000000..158465b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/universal-access-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/universal-access.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/universal-access.svg new file mode 100644 index 0000000..3b7fc37 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/universal-access.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/unlock-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/unlock-fill.svg new file mode 100644 index 0000000..f053354 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/unlock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/unlock.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/unlock.svg new file mode 100644 index 0000000..8eb0925 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/unlock.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/upc-scan.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/upc-scan.svg new file mode 100644 index 0000000..2a9a6af --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/upc-scan.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/upc.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/upc.svg new file mode 100644 index 0000000..6669ef7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/upc.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/upload.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/upload.svg new file mode 100644 index 0000000..be3f8e3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/upload.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-c-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-c-fill.svg new file mode 100644 index 0000000..0e50ac6 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-c-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-c.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-c.svg new file mode 100644 index 0000000..c17d4ca --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-c.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-drive-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-drive-fill.svg new file mode 100644 index 0000000..834614d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-drive-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-drive.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-drive.svg new file mode 100644 index 0000000..ca08df5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-drive.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-fill.svg new file mode 100644 index 0000000..443c91a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-micro-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-micro-fill.svg new file mode 100644 index 0000000..67ad744 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-micro-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-micro.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-micro.svg new file mode 100644 index 0000000..945b6e7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-micro.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-mini-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-mini-fill.svg new file mode 100644 index 0000000..7235636 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-mini-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-mini.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-mini.svg new file mode 100644 index 0000000..7cc383f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-mini.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-plug-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-plug-fill.svg new file mode 100644 index 0000000..2f1c185 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-plug-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-plug.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-plug.svg new file mode 100644 index 0000000..68f5f97 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-plug.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-symbol.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-symbol.svg new file mode 100644 index 0000000..eb02d87 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb-symbol.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/usb.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb.svg new file mode 100644 index 0000000..e82324c --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/usb.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/valentine.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/valentine.svg new file mode 100644 index 0000000..5542055 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/valentine.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/valentine2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/valentine2.svg new file mode 100644 index 0000000..c70e274 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/valentine2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/vector-pen.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/vector-pen.svg new file mode 100644 index 0000000..013acc2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/vector-pen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/view-list.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/view-list.svg new file mode 100644 index 0000000..3d1a972 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/view-list.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/view-stacked.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/view-stacked.svg new file mode 100644 index 0000000..7f59bb9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/view-stacked.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/vimeo.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/vimeo.svg new file mode 100644 index 0000000..34eea6d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/vimeo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/vinyl-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/vinyl-fill.svg new file mode 100644 index 0000000..a5ab73d --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/vinyl-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/vinyl.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/vinyl.svg new file mode 100644 index 0000000..75c2681 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/vinyl.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/virus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/virus.svg new file mode 100644 index 0000000..64dd56f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/virus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/virus2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/virus2.svg new file mode 100644 index 0000000..0aa3901 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/virus2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/voicemail.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/voicemail.svg new file mode 100644 index 0000000..ff7ce86 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/voicemail.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-down-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-down-fill.svg new file mode 100644 index 0000000..4879b5a --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-down.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-down.svg new file mode 100644 index 0000000..996dbef --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-mute-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-mute-fill.svg new file mode 100644 index 0000000..7ab7684 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-mute-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-mute.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-mute.svg new file mode 100644 index 0000000..12659d9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-mute.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-off-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-off-fill.svg new file mode 100644 index 0000000..4941870 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-off-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-off.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-off.svg new file mode 100644 index 0000000..08bb6b9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-up-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-up-fill.svg new file mode 100644 index 0000000..495ee98 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-up-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-up.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-up.svg new file mode 100644 index 0000000..3840310 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/volume-up.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/vr.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/vr.svg new file mode 100644 index 0000000..cf2ea37 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/vr.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet-fill.svg new file mode 100644 index 0000000..d44e5c8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet.svg new file mode 100644 index 0000000..d18441b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet2.svg new file mode 100644 index 0000000..e646d94 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wallet2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/watch.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/watch.svg new file mode 100644 index 0000000..8c3ee98 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/watch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/water.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/water.svg new file mode 100644 index 0000000..18e0825 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/water.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/webcam-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/webcam-fill.svg new file mode 100644 index 0000000..04b835b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/webcam-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/webcam.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/webcam.svg new file mode 100644 index 0000000..da7ef71 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/webcam.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wechat.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wechat.svg new file mode 100644 index 0000000..06b8ff8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wechat.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/whatsapp.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/whatsapp.svg new file mode 100644 index 0000000..6242d05 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/whatsapp.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-1.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-1.svg new file mode 100644 index 0000000..4d75ef5 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-2.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-2.svg new file mode 100644 index 0000000..377c1fc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-off.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-off.svg new file mode 100644 index 0000000..4399861 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi.svg new file mode 100644 index 0000000..8cb1f71 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wifi.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wind.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wind.svg new file mode 100644 index 0000000..d350ea4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wind.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-dash.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-dash.svg new file mode 100644 index 0000000..191fbd7 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-dash.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-desktop.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-desktop.svg new file mode 100644 index 0000000..a044521 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-desktop.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-dock.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-dock.svg new file mode 100644 index 0000000..dbffecb --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-dock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-fullscreen.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-fullscreen.svg new file mode 100644 index 0000000..22a8d20 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-plus.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-plus.svg new file mode 100644 index 0000000..08444f3 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-plus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-sidebar.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-sidebar.svg new file mode 100644 index 0000000..98476ce --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-sidebar.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-split.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-split.svg new file mode 100644 index 0000000..21862f2 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-split.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-stack.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-stack.svg new file mode 100644 index 0000000..592e5c8 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-stack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window-x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-x.svg new file mode 100644 index 0000000..e7a97dc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/window.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/window.svg new file mode 100644 index 0000000..ad6166e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/window.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/windows.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/windows.svg new file mode 100644 index 0000000..b280560 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/windows.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wordpress.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wordpress.svg new file mode 100644 index 0000000..4c8cbc4 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wordpress.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable-circle-fill.svg new file mode 100644 index 0000000..b723d7f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable-circle-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable-circle.svg new file mode 100644 index 0000000..a5a6f0b --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable.svg new file mode 100644 index 0000000..4ec8082 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench-adjustable.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench.svg new file mode 100644 index 0000000..bef0713 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/wrench.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-circle-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-circle-fill.svg new file mode 100644 index 0000000..448fdee --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-circle.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-circle.svg new file mode 100644 index 0000000..ce37cdc --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-diamond-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-diamond-fill.svg new file mode 100644 index 0000000..2de6403 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-diamond.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-diamond.svg new file mode 100644 index 0000000..0ade536 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-diamond.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-lg.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-lg.svg new file mode 100644 index 0000000..53aec00 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-octagon-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-octagon-fill.svg new file mode 100644 index 0000000..7872889 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-octagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-octagon.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-octagon.svg new file mode 100644 index 0000000..794afd9 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-octagon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-square-fill.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-square-fill.svg new file mode 100644 index 0000000..ddfd727 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x-square.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-square.svg new file mode 100644 index 0000000..9d7852f --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/x.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/x.svg new file mode 100644 index 0000000..c865d88 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/x.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/xbox.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/xbox.svg new file mode 100644 index 0000000..9d84973 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/xbox.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/yelp.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/yelp.svg new file mode 100644 index 0000000..08d3465 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/yelp.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/yin-yang.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/yin-yang.svg new file mode 100644 index 0000000..cf1da48 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/yin-yang.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/youtube.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/youtube.svg new file mode 100644 index 0000000..86fa490 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/youtube.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/zoom-in.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/zoom-in.svg new file mode 100644 index 0000000..6cde1a0 --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/zoom-in.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/bootstrap-icons-1.9.1/zoom-out.svg b/src/main/resources/static/img/bootstrap-icons-1.9.1/zoom-out.svg new file mode 100644 index 0000000..b965f8e --- /dev/null +++ b/src/main/resources/static/img/bootstrap-icons-1.9.1/zoom-out.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/img/f_logo.png b/src/main/resources/static/img/f_logo.png new file mode 100644 index 0000000..2280228 Binary files /dev/null and b/src/main/resources/static/img/f_logo.png differ diff --git a/src/main/resources/static/img/h_logo.png b/src/main/resources/static/img/h_logo.png new file mode 100644 index 0000000..0351f78 Binary files /dev/null and b/src/main/resources/static/img/h_logo.png differ diff --git a/src/main/resources/static/img/img01.jpg b/src/main/resources/static/img/img01.jpg new file mode 100644 index 0000000..d63beaf Binary files /dev/null and b/src/main/resources/static/img/img01.jpg differ diff --git a/src/main/resources/static/img/img02.jpg b/src/main/resources/static/img/img02.jpg new file mode 100644 index 0000000..9831196 Binary files /dev/null and b/src/main/resources/static/img/img02.jpg differ diff --git a/src/main/resources/static/img/logo.png b/src/main/resources/static/img/logo.png new file mode 100644 index 0000000..9b8ad43 Binary files /dev/null and b/src/main/resources/static/img/logo.png differ diff --git a/src/main/resources/static/img/mVisual_01.jpg b/src/main/resources/static/img/mVisual_01.jpg new file mode 100644 index 0000000..1c6b4ae Binary files /dev/null and b/src/main/resources/static/img/mVisual_01.jpg differ diff --git a/src/main/resources/static/js/authMgt/authMgt.js b/src/main/resources/static/js/authMgt/authMgt.js new file mode 100644 index 0000000..24bc0d4 --- /dev/null +++ b/src/main/resources/static/js/authMgt/authMgt.js @@ -0,0 +1,69 @@ + +$(document).on('click', '.userInfoTr', function (){ + $.ajax({ + url: '/authMgt/authEditModal', + data: {userSeq: Number($(this).find(".userSeq").val())}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#configInfo").empty().append(html) + $("#accessTab").click(); + $("#authEditModal").modal('show'); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '.radioTd', function (){ + $(this).find('input').prop('checked', true); +}) + +$(document).on('click', '#saveAuthBtn', function (){ + if(confirm("저장하시겠습니까?")){ + contentFade("in"); + const userSeq = Number($("#userSeq").val()); + const accessConfigList = [] + $("#accessEditTable").find('tbody').children().each(function (idx, tr){ + accessConfigList.push( + { + userSeq: userSeq, + menuKey: Number($(this).find('.menuKey').val()), + accessAuth: $(this).find('input:checked').val() + } + ) + }) + const approvalConfigList = [] + $("#approvalEditTable").find('input:checked').each(function (idx, tr){ + approvalConfigList.push( + { + userSeq: userSeq, + menuKey: Number($(this).parents('tr').find('.menuKey').val()), + approvalAuth: $(this).val() + } + ) + }) + const authList = {}; + authList.accessConfigList = accessConfigList; + authList.approvalConfigList = approvalConfigList; + + $.ajax({ + type : 'POST', + url : "/authMgt/saveAuth", + data : JSON.stringify(authList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("저장되었습니다."); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) \ No newline at end of file diff --git a/src/main/resources/static/js/codeMgt/codeMgt.js b/src/main/resources/static/js/codeMgt/codeMgt.js new file mode 100644 index 0000000..78cbd24 --- /dev/null +++ b/src/main/resources/static/js/codeMgt/codeMgt.js @@ -0,0 +1,157 @@ +let codeCategoryList=[]; +let selectedCategoryIdx=0; +let selectedItemIdx=0; + +$(function(){ + $.ajax({ + url: '/codeMgt/selectCodeCatgList', + type: 'GET', + dataType:"json", + success: function(data){ + codeCategoryList = data; + makeCategoryTr(); + }, + error:function(){ + + } + }); +}); + +$(document).on('click', '#categoryAddBtn', function (){ + $('#categoryTable').find('tbody').append( + '' + + ''+ + ''+ + ''+ + ''+ + '' + ) + codeCategoryList.push({categoryCd:"", categoryValue: "", description: "", status:"new", itemList: []}) +}) +$(document).on('click', '#itemAddBtn', function (){ + $('#itemTable').find('tbody').append( + '' + + ''+ + ''+ + ''+ + ''+ + '' + ) + codeCategoryList[selectedCategoryIdx].itemList + .push({categoryCd:codeCategoryList[selectedCategoryIdx].categoryCd, itemCd:codeCategoryList[selectedCategoryIdx].categoryCd, itemValue: "", useChk: "T", status:"new"}) +}) + +$(document).on('click', '.rowDeleteBtn', function (){ + switch ($(this).parents("table")[0].id){ + case "categoryTable": + selectedCategoryIdx = $(this).parents('tr')[0].rowIndex-1; + codeCategoryList.splice(selectedCategoryIdx, 1); + $("#emptyTr").show(); + $("#itemBtnRow").hide(); + break; + case "itemTable": + selectedItemIdx = $(this).parents('tr')[0].rowIndex-1; + codeCategoryList[selectedCategoryIdx].itemList.splice(selectedItemIdx, 1); + break; + } + $(this).parents('tr').remove(); +}) + +$(document).on('click', '.categoryTr', function (event){ + $("#itemTable").find("tbody").find("tr").remove(); + if(event.target.classList.value === "bi bi-x" + || event.target.classList.value.includes("rowDeleteBtn")) { + }else{ + selectedCategoryIdx = this.rowIndex-1; + $("#itemBtnRow").show(); + $("#emptyTr").hide(); + + if(codeCategoryList[selectedCategoryIdx]!==undefined + && codeCategoryList[selectedCategoryIdx].itemList.length>0){ + makeItemTr(codeCategoryList[selectedCategoryIdx].itemList); + } + } +}) + +$(document).on('click', '.itemTr', function (){ + selectedItemIdx = this.rowIndex-1; +}) + +$(document).on('change', '.categoryInput', function (){ + selectedCategoryIdx = $(this).parents('tr')[0].rowIndex-1; + const target = codeCategoryList[selectedCategoryIdx]; + switch (this.name){ + case "categoryCd": + target.categoryCd = this.value + break; + case "categoryValue": + target.categoryValue = this.value + break; + case "description": + target.description = this.value + break; + } +}) + +$(document).on('change', '.itemInput', function (){ + selectedItemIdx = $(this).parents('tr')[0].rowIndex-1; + const target = codeCategoryList[selectedCategoryIdx].itemList[selectedItemIdx]; + switch (this.name){ + case "itemCd": + target.itemCd = this.value + break; + case "itemValue": + target.itemValue = this.value + break; + case "useChk": + target.useChk = this.checked?"T":"F" + break; + } +}) + +$(document).on('click', '#codeSaveBtn', function (){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/codeMgt/saveCode", + data : JSON.stringify(codeCategoryList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) +}) + +function makeCategoryTr(){ + codeCategoryList.forEach(function (category, idx){ + $("#categoryTable").find('tbody').append( + '' + + ''+(category.status==="new"?'':'')+''+ + ''+ + ''+ + ''+ + '' + ) + }); +} +function makeItemTr(itemList){ + itemList.forEach(function (item, idx){ + $("#itemTable").find('tbody').append( + '' + + ''+(item.status==="new"?'':'')+''+ + ''+ + ''+ + ''+(item.status==="new"?'':'')+''+ + '' + ) + }); +} \ No newline at end of file diff --git a/src/main/resources/static/js/common.js b/src/main/resources/static/js/common.js new file mode 100644 index 0000000..b7f890a --- /dev/null +++ b/src/main/resources/static/js/common.js @@ -0,0 +1,181 @@ +let files = []; + +function contentFade(action){ + if(action === "in"){ + $("#fadeDiv").show() + }else{ + $("#fadeDiv").hide() + } +} + +$(document).on('click', '.allChk', function (){ + $(this).parents('table').find('[type="checkbox"]').prop("checked", this.checked); +}) +$(document).on('click', '.page-item', function (){ + if(!this.className.includes("modalPage")){ + searchFormSubmit($(this).attr("data-pageindex")) + }else{ + searchModalSubmit($(this).attr("data-pageindex")) + } +}) +$(document).on('click', '#searchModalBtn', function (){ + searchModalSubmit(1); +}) +$(document).on('change', '#rowCnt', function (){ + searchFormSubmit(1) +}) +function searchFormSubmit(pageIndex){ + $("#pageIndex").val(pageIndex); + $("#searchBtn").click(); +} +function searchModalSubmit(pageIndex){ + $("#pageIndex").val(pageIndex); + $.ajax({ + url: $("#modalUrl").val(), + data : $("#modalSearchForm").serialize(), + type: 'GET', + contentType: false, + dataType:"html", + success: function(html){ + $("#modalBody").empty().append(html) + if(selectedList !== undefined){ + setSelectedChkBox(); + } + }, + error:function(){ + } + }); +} + + +$(document).on('mouseenter', '.firstMenuLink', function (event){ + $(".secondMenu").hide(); + const targetMenu = $(this).parent().find(".secondMenu"); + targetMenu.show() + targetMenu.find("ul").css("padding-top",(event.clientY-20)+"px") +}) +$(document).on('mouseenter', '.secondMenuLink', function (event){ + $(".thirdMenu").hide(); + const targetMenu = $(this).parent().find(".thirdMenu"); + targetMenu.show() + targetMenu.find("ul").css("padding-top",(event.clientY-20)+"px") +}) +$(document).on('mouseleave', '.menuDiv', function (){ + $(".secondMenu").hide(); + $(".thirdMenu").hide(); +}) + +$(document).on('change', '#fileInputer', function (){ + for(const file of this.files){ + setFileDiv(file, files.push(file)); + } + this.value = null; +}) + +function byteCalculation(size) { + const bytes = parseInt(size); + const s = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB']; + const e = Math.floor(Math.log(bytes)/Math.log(1024)); + + if(e === "-Infinity") return "0 "+s[0]; + else return (bytes/Math.pow(1024, Math.floor(e))).toFixed(2)+" "+s[e]; + +} + +$(document).on('click', '.fileDelete', function (){ + const target = $(this); + files[Number(target.attr("data-fileidx"))].isDelete = true; + target.parent().remove(); + const uploadDiv = $("#uploadDiv"); + if(uploadDiv.children().length === 0){ + uploadDiv.append("
파일을 업로드 해주세요."); + } +}) +$(document).on('click', '.uploadedFileDelete', function (){ + const target = $(this).parent().find("span")[0]; + if(target.className===""){ + target.className = "text-decoration-line-through"; + }else{ + target.className = ""; + } +}) + +$(document).on('click', '.fileDownLink', function (){ + const target = $(this) + let url = "/file/fileDownload?" + url += "board="+target.attr("data-board"); + url += "&parentKey="+target.attr("data-parentkey"); + url += "&fileSeq="+target.attr("data-fileseq"); + window.open(encodeURI(url)); +}) + +//Bootstrap multiple modal +let count = 0; // 모달이 열릴 때 마다 count 해서 z-index값을 높여줌 +$(document).on('show.bs.modal', '.modal', function () { + let zIndex = 1040 + (10 * count); + $(this).css('z-index', zIndex); + setTimeout(function() { + $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack'); + }, 0); + count = count + 1 +}); +// multiple modal Scrollbar fix +$(document).on('hidden.bs.modal', '.modal', function(){ + $('.modal:visible').length && $(document.body).addClass('modal-open'); +}); + +function setUploadDiv(){ + files = []; + $("#uploadDiv").on("dragenter", function(e) { + // $(this).addClass('drag-over'); + }).on("dragleave", function(e) { + // $(this).removeClass('drag-over'); + }).on("dragover", function(e) { + e.stopPropagation(); + e.preventDefault(); + }).on('drop', function(e) { + e.preventDefault(); + // $(this).removeClass('drag-over'); + for(const file of e.originalEvent.dataTransfer.files){ + setFileDiv(file, files.push(file)); + } + }).on('click', function (e){ + if(e.target.className.indexOf("ileDelete")<0){ + if(e.target.className.indexOf("artInfo")<0){ + if(e.target.className.indexOf("artWork")<0){ + $("#fileInputer").click(); + } + } + } + }); +} + +function setFileDiv(file, idx){ + const uploadDiv = $("#uploadDiv"); + if($(".uploadedFileDelete").length===0 && $(".fileDelete").length === 0){ + uploadDiv.empty(); + } + let fileInfo = "
"; + fileInfo += file.name+" "+byteCalculation(file.size)+" "; + fileInfo += "삭제"; + fileInfo += "
"; + uploadDiv.append(fileInfo); +} + +function fileCheck(flag, files){ + let totalSize = 0; + for(const file of files) { + if(!file.isDelete){ + totalSize+=file.size; + if(file.size>209715200){ + alert("파일당 사이즈는 200MB을 넘길 수 없습니다.") + flag = false; + } + } + } + if(totalSize>524288000){ + alert("첨부파일의 용량 합은 500MB를 넘길 수 없습니다.") + flag = false; + } + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/dashboard.js b/src/main/resources/static/js/dashboard.js new file mode 100644 index 0000000..14c10fc --- /dev/null +++ b/src/main/resources/static/js/dashboard.js @@ -0,0 +1,33 @@ +$(function (){ + $.ajax({ + type : 'GET', + url : "/myInfo/getDashBoardConfig", + dataType:"json", + success : function(data) { + data = [{menuUrl:"/publicBoard/noticePage"}].concat(data) + getSubPage(data) + }, + error : function(xhr, status) { + + } + }) +}) + +function getSubPage(menuList){ + $.each(menuList, function(idx, menu){ + if(idx<6){ + const url = menu.menuUrl+(menu.menuUrl.includes('?')?'&dashboardFlag=true':'?dashboardFlag=true'); + $.ajax({ + type : 'GET', + url : url, + dataType:"html", + success : function(html) { + $("#subPage"+idx).append(html); + }, + error : function(xhr, status) { + + } + }) + } + }) +} \ No newline at end of file diff --git a/src/main/resources/static/js/equip/cellPhone.js b/src/main/resources/static/js/equip/cellPhone.js new file mode 100644 index 0000000..6ed480c --- /dev/null +++ b/src/main/resources/static/js/equip/cellPhone.js @@ -0,0 +1,204 @@ +$(document).on('click', '#addCellPhone', function (){ + showModal(null); +}) + +$(document).on('change', '#mgtOrgan', function (){ + const ogCd = $(this).val(); + if(ogCd != ''){ + changeManager(ogCd); + }else{ + $("#pUserSeq").prop('disabled',true); + $("#pUserSeq").val(''); + } +}); + + +function changeManager(ogCd){ + $.ajax({ + url: '/target/partInfoSelecBox', + data: { + ogCd, + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#pUserSeq").empty().append(html); + $("#pUserSeq").prop('disabled',false); + }, + error:function(){ + } + }); +} + +$(document).on('click', '#saveCellPhone', function (){ + if(Validation()){ + if(confirm("저장하시겠습니까?")){ + document.getElementById("mgtOrgan").disabled = false; + contentFade("in"); + const formData = new FormData($("#cellPhoneEditFm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/equip/saveCellPhone", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +}) + +$(document).on('click', '.cellPhoneTr', function (event){ + const target = event.target; + if(!(target.className === "cpChk" ||$(target).parents("td").length>0)){ + const phoneKey = (Number($(this).find(".phoneKey").val())); + showModal(phoneKey); + } +}); + +function showModal(phoneKey){ + $.ajax({ + url: '/equip/cellPhoneEditModal', + data: {phoneKey: phoneKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#cellPhoneEditModalContent").empty().append(html); + $("#cellPhoneEditModal").modal('show'); + if(phoneKey == null){ + changeManager($("#mgtOrgan").val()); + } + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#updateCellPhone', function (){ + if(Validation()){ + if(confirm("수정하시겠습니까?")){ + document.getElementById("mgtOrgan").disabled = false; + contentFade("in"); + const formData = new FormData($("#cellPhoneEditFm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/equip/saveCellPhone", + processData: false, + contentType: false, + success : function(result) { + alert("수정되었습니다."); + contentFade("out"); + showModal(result); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +}) + +$(document).ready( function() { + $('#chk-all').click( function() { + $('.cellPhoneCheckBox').prop('checked',this.checked); + }); +}); + +$(document).on('click', '#deleteCellPhone', function (){ + if(confirm("선택한 대상을 삭제처리 하시겠습니까?")){ + const checkArr = []; + $('input:checkbox[name=cpChk]:checked').each(function (idx, el){ + checkArr.push({}); + const target = $(el); + checkArr[idx].phoneKey = Number(target.parents('tr').find('.phoneKey').val()); + }) + deleteCellPhone(checkArr); + + } +}) + +$(document).on('click', '#deleteCellPhoneM', function (){ + if(confirm("선택한 대상을 삭제처리 하시겠습니까?")){ + const checkArr = []; + checkArr.push({}); + checkArr[0].phoneKey = Number( $('input[name=phoneKey]').val()); + deleteCellPhone(checkArr); + } +}) + +function deleteCellPhone(checkArr){ + $.ajax({ + type : 'POST', + url : "/equip/deleteCellPhone", + data : JSON.stringify(checkArr), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function() { + alert("삭제처리 되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제처리에 실패하였습니다"); + } + }) +} + +$(document).on('click', '#goExcel', function (){ + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + $('input[name=excel]').val('Y'); + $('#searchFm').submit(); + $('input[name=excel]').val(''); + }else{ + false; + } +}) + +function Validation(){ + let flag = true; + const emailRule = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i; + const regExp = /^\d{2,3}-\d{3,4}-\d{4}$/; + if($('#mgtOrgan').val() == ""){ + alert("관리처를 선택해주세요."); + $('#mgtOrgan').focus(); + flag = false; + } + if($('#pUserSeq').val() == ""){ + alert("사용자를 선택해주세요."); + $('#pUserSeq').focus(); + flag = false; + } + if($('#telNo').val() != ""){ + if(!regExp.test($("input[id='telNo']").val())) { + alert("전화번호 형식이 맞지않습니다."); + $('#telNo').focus(); + flag = false; + } + } + if($('#extMail').val() != ""){ + if(!emailRule.test($("input[id='extMail']").val())) { + alert("이메일 형식이 맞지않습니다."); + $('#extMail').focus(); + flag = false; + } + } + return flag; +} + +$(document).on('click', '#btn-close', function (){ + location.reload(); +}) + + diff --git a/src/main/resources/static/js/equip/equip.js b/src/main/resources/static/js/equip/equip.js new file mode 100644 index 0000000..b54fb1b --- /dev/null +++ b/src/main/resources/static/js/equip/equip.js @@ -0,0 +1,304 @@ + + +$(document).ready(function(){ + $(".table_id").each(function(){ + var rows = $(".table_id:contains('"+$(this).text()+"')"); + + if(rows.length > 1){ + rows.eq(0).attr("rowspan", rows.length); + rows.not(":eq(0)").remove(); + } + }) + +}); + + + +$(document).on('click', '#addEquip', function (){ + $.ajax({ + url: '/equip/equipEditModal', + type: 'GET', + dataType:"html", + success: function(html){ + $("#equipEditModalContent").empty().append(html); + $("#equipEditModal").modal('show'); + $(".storedYear").datepicker({ + minViewMode: 'years', + format: "yyyy", + language: "ko" + }) + }, + error:function(){ + + } + }); +}) + +$(document).on('change', '#equType', function (){ + const equType = $(this).val(); + + $.ajax({ + url: '/equip/equipTypeSelecBox', + data: { + equType, + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#detailType").empty().append(html) + }, + error:function(){ + + } + }); +}); + +$(document).on('click', '#saveEquip', function (){ + if($('#mgtOrgan').val() == ''){ + alert("관리처를 선택해주세요."); + $('#mgtOrgan').focus(); + return false; + } + if($('#equType').val() == ''){ + alert("분류를 선택해주세요."); + $('#equType').focus(); + return false; + } + if($('#detailType').val() == ''){ + alert("세부분류를 선택해주세요."); + $('#detailType').focus(); + return false; + } + if($('#itemQty').val() == ''){ + alert("수량을 입력해주세요."); + $('#itemQty').focus(); + return false; + } + if(confirm("저장하시겠습니까?")){ + document.getElementById("mgtOrgan").disabled = false; + let ajaxUrl = "/equip/saveEquip"; + const formData = new FormData($("#equipEditForm")[0]); + contentFade("in"); + $.ajax({ + type : 'POST', + data : formData, + url : ajaxUrl, + processData: false, + contentType: false, + success : function() { + alert("저장되었습니다."); + location.reload(); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + +}); + +$(document).on('click', '#equUpdateBtn', function (){ + if($('input:checkbox[name=equChk]:checked').length < 1){ + alert("게시물을 선택해주세요") + return false; + } + if($('input:checkbox[name=equChk]:checked').length > 1){ + alert("한개만 선택해주세요") + return false; + } + const target = $('input:checkbox[name=equChk]:checked'); + const equKey = Number(target.parents('tr').find('.equKey').val()); + showUpdateModal(equKey); +}) + +function showUpdateModal(equKey){ + $.ajax({ + url: '/equip/updatePage', + data: {equKey: equKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#configEqu").empty().append(html) + $("#equipModifyModal").modal('show'); + $(".mStoredYear").datepicker({ + minViewMode: 'years', + format: "yyyy", + language: "ko" + }) + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#addImgBtn', function (){ + $("#imgUpload").remove(); + $("#imgUpdate").show(); + +}) + +function deleteImg(equKey,versionNo){ + $('#equipModifyForm').append('', + ''); + $("#imgUpload").remove(); + $("#imgUpdate").show(); +} + +$(document).on('click', '#updateEquip', function (){ + if($('#mMgtOrgan').val() == ''){ + alert("관리처를 선택해주세요."); + $('#mMgtOrgan').focus(); + return false; + } + if($('#mItemQty').val() == ''){ + alert("수량을 입력해주세요."); + $('#mItemQty').focus(); + return false; + } + if(confirm("수정하시겠습니까?")){ + document.getElementById("mMgtOrgan").disabled = false; + let ajaxUrl = "/equip/updateEquip"; + const formData = new FormData($("#equipModifyForm")[0]); + contentFade("in"); + $.ajax({ + type : 'POST', + data : formData, + url : ajaxUrl, + processData: false, + contentType: false, + success : function(data) { + alert("수정되었습니다."); + showUpdateModal(data); + contentFade("out"); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } + +}); + +$(document).on('click', '#historyBtn', function (){ + if($('input:checkbox[name=equChk]:checked').length < 1){ + alert("게시물을 선택해주세요") + return false; + } + if($('input:checkbox[name=equChk]:checked').length > 1){ + alert("한개만 선택해주세요") + return false; + } + const target = $('input:checkbox[name=equChk]:checked'); + const equKey = Number(target.parents('tr').find('.equKey').val()); + $.ajax({ + url: '/equip/historyView', + data: {equKey: equKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#configEqu").empty().append(html) + $("#equipModifyModal").modal('show'); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '.historyInfoTr', function (){ + $(this).find('.hisChk').prop('checked',true) + if($(this).find('.hisChk').prop('checked')){ + $('.hisChk').prop('checked',false); + $(this).find('.hisChk').prop('checked',true) + } + $.ajax({ + url: '/equip/HistoryDetail', + data: { + equKey : Number($(this).find(".equKey").val()), + versionNo : Number($(this).find(".verNo").val()) + }, + type: 'GET', + dataType:"json", + success: function(data){ + $('#vSosok').val(data.sosok); + $('#vEquType').val(data.equType); + $('#vDetailType').val(data.detailType); + $('#vStoredYear').val(data.storedYear); + $('#vItemQty').val(data.itemQty); + $('#vItemCondition').val(data.itemCondition); + $('#vNote').val(data.note); + $('#vImgName').val(data.origNm); + + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#equDeleteBtn', function (){ + if(confirm("선택한 대상을 삭제처리 하시겠습니까?")){ + const checkArr = []; + $('input:checkbox[name=equChk]:checked').each(function (idx, el){ + checkArr.push({}); + const target = $(el); + checkArr[idx].equKey = Number(target.parents('tr').find('.equKey').val()); + }) + deleteEquip(checkArr); + + } +}) + +$(document).on('click', '#deleteEquip', function (){ + if(confirm("선택한 대상을 삭제처리 하시겠습니까?")){ + const checkArr = []; + checkArr.push({}); + checkArr[0].equKey = Number($('#mEquKey').val()); + deleteEquip(checkArr); + } +}) + +function deleteEquip(checkArr){ + $.ajax({ + type : 'POST', + url : "/equip/epuipDelete", + data : JSON.stringify(checkArr), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function() { + alert("삭제처리 되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제처리에 실패하였습니다"); + } + }) +} + +$(document).ready( function() { + $('#chk-all').click( function() { + $('.equInfoCheckBox').prop('checked',this.checked); + }); +}); + +$(document).on('click', '#statusExcel', function (){ + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + location.href='/equip/statusExcelDown' + } +}) + +$(document).on('click', '#closeModal', function (){ + location.reload(); +}) + +$(document).on('click', '.btn-close', function (){ + location.reload(); +}) + + diff --git a/src/main/resources/static/js/equip/use.js b/src/main/resources/static/js/equip/use.js new file mode 100644 index 0000000..302d826 --- /dev/null +++ b/src/main/resources/static/js/equip/use.js @@ -0,0 +1,271 @@ +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) + +$(document).on('click', '#addPvre', function (){ + const useType = "PVRE"; + showEditModal(useType); +}) + +$(document).on('click', '#addQir', function (){ + const useType = "QIR"; + showEditModal(useType); +}) + +function showEditModal(useType){ + $.ajax({ + url: '/equip/useEditModal', + data: {useType: useType}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#useEditModalContent").empty().append(html); + $("#useEditModal").modal('show'); + $("#useDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $('#detailSelf').hide(); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#saveUse', function (){ + if($('#mgtOrgan').val() == ""){ + alert("사용관서를 선택해주세요."); + $('#mgtOrgan').focus(); + return false; + } + if(confirm("저장하시겠습니까?")){ + document.getElementById("mgtOrgan").disabled = false; + contentFade("in"); + const formData = new FormData($("#useFm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/equip/saveUse", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +$(document).on('change', '#detailType', function (){ + if($(this).val() == 'PVREUSE007' || $(this).val() == 'QIRUSE006'){ + $('#detailSelf').show(); + }else{ + $('#detailSelf').hide(); + $('#detailSelf').val(''); + } +}); + +$(document).on('click', '.useTr', function (event){ + const target = event.target; + if(!(target.className === "useChk" ||$(target).parents("td").length>0)){ + const useNo = $(target).parent('tr').data("useno"); + const useType = $(target).parent('tr').data("usetype"); + const mgtOrgan = $(target).parent('tr').data("mgtorgan"); + showMdifyModal(useNo,useType,mgtOrgan); + } +}); + +function showMdifyModal(useNo,useType,mgtOrgan){ + $.ajax({ + url: '/equip/useModifyModal', + data: {useNo: useNo, + useType: useType, + mgtOrgan: mgtOrgan}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#useEditModalContent").empty().append(html); + $("#useEditModal").modal('show'); + $("#mUseDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + if($('#mDetailType').val() != 'PVREUSE007' && $('#mDetailType').val() != 'QIRUSE006'){ + $('#mDetailSelf').hide(); + }else{ + $('#mDetailSelf').show(); + } + }, + error:function(){ + + } + }); +} + +$(document).on('change', '#mDetailType', function (){ + if($(this).val() == 'PVREUSE007' || $(this).val() == 'QIRUSE006'){ + $('#mDetailSelf').show(); + }else{ + $('#mDetailSelf').hide(); + $('#mDetailSelf').val(''); + } +}); + +$(document).on('click', '#updateUse', function (){ + + if(confirm("수정하시겠습니까?")){ + document.getElementById("mMgtOrgan").disabled = false; + contentFade("in"); + const formData = new FormData($("#useUpdateFm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/equip/updateUse", + processData: false, + contentType: false, + success : function(data) { + alert("수정되었습니다."); + contentFade("out"); + showMdifyModal(data.useNo,data.useType,data.mgtOrgan); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '#historyBtn', function (){ + if($('input:checkbox[name=useChk]:checked').length < 1){ + alert("게시물을 선택해주세요") + return false; + } + if($('input:checkbox[name=useChk]:checked').length > 1){ + alert("한개만 선택해주세요") + return false; + } + const target = $('input:checkbox[name=useChk]:checked'); + const useNo = $(target).parent().parent('tr').data("useno"); + const useType = $(target).parent().parent('tr').data("usetype"); + const mgtOrgan = $(target).parent().parent('tr').data("mgtorgan"); + $.ajax({ + url: '/equip/useHistory', + data: {useNo: useNo, + useType: useType, + mgtOrgan: mgtOrgan}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#useEditModalContent").empty().append(html); + $("#useEditModal").modal('show'); + $('#vDetailSelf').hide(); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '.historyTr', function (event){ + const target = event.target; + $(this).find('.hisChk').prop('checked',true) + if($(this).find('.hisChk').prop('checked')){ + $('.hisChk').prop('checked',false); + $(this).find('.hisChk').prop('checked',true) + } + $.ajax({ + url: '/equip/HistoryView', + data: { + useNo: $(target).parents('tr').data("useno"), + versionNo : Number($(target).parents('tr').data("verno")), + useType : $(target).parents('tr').data("usetype"), + mgtOrgan : $(target).parents('tr').data("mgtorgan") + }, + type: 'GET', + dataType:"json", + success: function(data){ + $('#vSosok').val(data.sosok); + $('#vUseDt').val(data.useDt); + $('#vDetailType').val(data.detailTypeName); + if(data.detailType != 'PVREUSE007' && data.detailType != 'QIRUSE006'){ + $('#vDetailSelf').hide(); + $('#vDetailSelf').val(''); + }else{ + $('#vDetailSelf').show(); + $('#vDetailSelf').val(data.detailSelf); + } + $('#vCnt').val(data.peopleCnt); + $('#vDescription').val(data.description); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#deleteUse', function (){ + if($('input:checkbox[name=useChk]:checked').length < 1){ + alert("삭제할 게시물을 선택해주세요") + return false; + } + if(confirm("선택한 대상을 삭제처리 하시겠습니까?")){ + const checkArr = []; + $('input:checkbox[name=useChk]:checked').each(function (idx, el){ + checkArr.push({}); + const target = $(el); + checkArr[idx].useNo = target.parents('tr').data("useno"); + checkArr[idx].mgtOrgan = target.parents('tr').data("mgtorgan"); + checkArr[idx].useType = target.parents('tr').data("usetype"); + }) + deleteUse(checkArr); + } +}) + +function deleteUse(checkArr){ + $.ajax({ + type : 'POST', + url : "/equip/useDelete", + data : JSON.stringify(checkArr), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function() { + alert("삭제처리 되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제처리에 실패하였습니다"); + } + }) +} + +$(document).on('click', '#goExcel', function (){ + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + $('input[name=excel]').val('Y'); + $('#searchFm').submit(); + $('input[name=excel]').val(''); + }else{ + false; + } +}) + +$(document).ready( function() { + $('#chk-all').click( function() { + $('.useCheckBox').prop('checked',this.checked); + }); +}); + +$(document).on('click', '#closeModal', function (){ + location.reload(); +}) \ No newline at end of file diff --git a/src/main/resources/static/js/faRpt/faRpt.js b/src/main/resources/static/js/faRpt/faRpt.js new file mode 100644 index 0000000..c1f2e3a --- /dev/null +++ b/src/main/resources/static/js/faRpt/faRpt.js @@ -0,0 +1,185 @@ + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) + +$(document).on('click', '#sendTab', function (){ + location.href = "/faRpt/faRptBoard?activeTab=send"; +}) +$(document).on('click', '#receiveTab', function (){ + location.href = "/faRpt/faRptBoard?activeTab=receive"; +}) +$(document).on('click', '#allTab', function (){ + location.href = "/faRpt/faRptBoard?activeTab=all"; +}) + +$(document).on('click', '#addFaRptBtn', function (){ + getFaRptEditModal(null) +}) +$(document).on('click', '#editFaRptBtn', function (){ + $("#faRptViewModal").modal('hide'); + getFaRptEditModal(Number($("#faRptViewBody").find("[name='faRptKey']").val())); +}) + +$(document).on('click', '#faRptAddBtn', function (){ + $("#faRptDiv").append("") +}) + +$(document).on('click', '#detailFaRptAddBtn', function (){ + const detailFaRptDiv = $("#detailFaRptDiv"); + detailFaRptDiv.append(""); + const lastAppendTextarea = detailFaRptDiv.children()[detailFaRptDiv.children().length-1]; + $(lastAppendTextarea).summernote({ + lang:'ko-KR', + height: 120, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); +}) + +$(document).on('click', '#saveFaRptBtn', function (){ + saveFaRpt('DST002') +}) + +$(document).on('click', '#saveTempBtn', function (){ + saveFaRpt('DST001') +}) + +$(document).on('click', '.faRptTr', function (){ + const chkBox = $(this).find(".rowChkBox"); + if(chkBox.length>0){ + $(".trChkBox").prop("checked", false); + chkBox[0].checked = !chkBox[0].checked; + } + getFaRptViewModal(Number($(this).find(".faRptKey").val())); +}) + +$(document).on('click', '.apprvBtn', function (){ + $("#apprvFormFaRptKey").val($("#viewModalFaRptKey").val()); + $("#viewModalApprvValue").val($(this).attr("data-faRptstate")); + if(confirm($(this).val()+"하시겠습니까?")){ + const formData = new FormData($("#apprvForm")[0]); + contentFade("in") + $.ajax({ + type : 'POST', + data : formData, + url : "/faRpt/faRptStateChange", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + alert("저장되었습니다") + getFaRptViewModal(result); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) + } +}) + +function getFaRptViewModal(faRptKey){ + $.ajax({ + url: '/faRpt/faRptViewModal', + data: {faRptKey: faRptKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#faRptViewBody").empty().append(html) + $("#faRptViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getFaRptEditModal(faRptKey){ + $.ajax({ + url: '/faRpt/faRptEditModal', + data: {faRptKey: faRptKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#faRptEditModalContent").empty().append(html) + $("#faRptEditModal").modal('show'); + $("#faRptDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#content").summernote({ + lang:'ko-KR', + height: 360, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + setUploadDiv(); + }, + error:function(){ + + } + }); +} +function saveFaRpt(faRptState){ + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#faRptState").val(faRptState); + contentFade("in"); + const formData = new FormData($("#faRptEditForm")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/faRpt/saveFaRpt", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#faRptEditModal").modal('hide'); + getFaRptViewModal(result); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + + +function contentCheck(){ + let flag = true; + if(!$("#contentTitle").val()){ + alert("제목을 입력해주세요.") + flag = false; + } + flag = fileCheck(flag, files); + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js b/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js new file mode 100644 index 0000000..1514afb --- /dev/null +++ b/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js @@ -0,0 +1,511 @@ +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}); + + +$(document).on('click', '#icaAddBtn', function () { + getIcaEditModal(null); +}); + +$(document).on('click', '#icaEditBtn', function () { + $("#icaViewModal").modal('hide'); + $("#icaViewModal").modal('hide'); + getIcaEditModal(Number($("#icaViewBody").find("[name='icaKey']").val())); +}); + + +$(document).on('click', '#saveIcaBtn', function (){ + saveInternationalCrimeArrest('N') +}); + +$(document).on('click', '#saveTempBtn', function (){ + saveInternationalCrimeArrest('Y') +}); + +$(document).on('click', '.tr', function (){ + getIcaViewModal($(this).data('key')); +}); + + +$(document).on('change', '#crimeForm', function (){ + $('#crimeFormDiv').next().remove(); + if ($(this).val() != 'CMF001') { + $('#crimeFormDiv').after(''); + } else { + $.each($('.dynamic').children("input[name='spiKey']"), function (idx, item){ + let deleteKey = item.value; + $("#icaEditForm").append(''); + }); + $("#spiDiv").children('.dynamic').remove(); + } +}); + +$(document).on('click', '#spiAddBtn', function (){ + + let sex = ''; + commonCode.SEX.forEach(function (item){ + sex += ''; + }); + + let age = ''; + commonCode.AGE.forEach(function (item){ + age += ''; + }) + + let country = ''; + commonCode.NNY.forEach(function (item){ + country += ''; + }) + + $("#spiDiv").append( + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + ); +}); + +$(document).on('change', '.country', function (){ + if ($(this).val() == 'etc') { + $(this).parent().after( + '
' + + '' + + '
' + ); + } else { + $(this).parent().next().remove(); + } +}); + +$(document).on('change', '#processResult', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('click', '.spiCancelBtn', function (){ + let deleteKey = $(this).parent().children("input[name='spiKey']").val(); + $("#icaEditForm").append(''); + $(this).parent().remove(); +}); + +$(document).on('change', '#crimeType', function (){ + $('#smugglingAmountDiv').children().remove(); + $('#crimeNameDiv').children().remove(); + $('#arrestAreaDiv').remove(); + + let smugglingAmount = ''; + commonCode.SG.forEach(function (item){ + smugglingAmount += ''; + }) + + if ($(this).val() == 'CTH002') { + makeArrestAreaDiv('장소'); + $('#smugglingAmountDiv').append( + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + ); + } else { + $("#crimeNameDiv").append( + '' + + '
' + + '' + + '
' + ); + } +}); + +$(document).on('change', '#violationType', function (){ + $('#spiInfoDiv').remove(); + $('#arrestAreaDiv').remove(); + $('#meansDiv').remove(); + $('.entryVisa').remove(); + $('#violationAmountDiv').remove(); + + if ($(this).val() == 'VLT001') { + makeSpiInfoDiv('피의자 정보'); + makeArrestAreaDiv('지역'); + makeSeaAreaDiv('밀입국'); + makeMeansDiv('밀입국'); + makePurposeDiv('밀입국'); + makeDestinationDiv('밀입국 출발지(국가)'); + } + + if ($(this).val() == 'VLT002') { + makeSpiInfoDiv('피의자 정보'); + makeArrestAreaDiv('지역'); + makeSeaAreaDiv('도외이탈'); + makeMeansDiv('도외이탈'); + makePurposeDiv('도외이탈'); + } + + if ($(this).val() == 'VLT003') { + makeSpiInfoDiv('피의자 정보'); + makeArrestAreaDiv('지역'); + makeSeaAreaDiv('밀출국'); + makeMeansDiv('밀출국'); + makePurposeDiv('밀출국'); + makeDestinationDiv('밀출국 행선지(도착예정지)'); + } + + if ($(this).val() == 'VLT004') { + makeSpiInfoDiv('피의자 정보'); + makeArrestAreaDiv('지역'); + makeSeaAreaDiv('밀항'); + makeMeansDiv('밀항'); + makePurposeDiv('밀항'); + makeDestinationDiv('밀항 행선지(도착예정지)'); + } + + if ($(this).val() == 'VLT005') { + makeSpiInfoDiv('불법체류 및 취업'); + makeEntryVisaDiv(); + } + + if ($(this).val() == 'VLT301') { + makeViolationAmountDiv(); + } + +}); + +$(document).on('change', '#smugglingAmount', function (){ + if ($(this).val() == 'etc') { + $(this).parent().append( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#means', function (){ + if ($(this).val() == 'etc') { + $(this).parent().append( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#purpose', function (){ + if ($(this).val() == 'etc') { + $(this).parent().append( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(function(){ + $("#datePickerDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}); + +function makeEntryVisaDiv() { + $('#spiWrapper').prepend( + '' + + '
' + + '' + + '
' + ); +} + +function makeSpiInfoDiv(name) { + $('#spiParentDiv').after( + '
' + + '' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '
' + ); + $("#stayQualificationDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +} + +function makeSeaAreaDiv(name) { + + let seaArea = ''; + commonCode.SAA.forEach(function (item){ + seaArea += ''; + }) + + $('#arrestAreaDiv').append( + '' + + '
' + + '' + + '
' + ); +} + +function makeArrestAreaDiv(name) { + + let arrestArea = ''; + commonCode.SAA.forEach(function (item){ + arrestArea += ''; + }) + + $('#spiParentDiv').after( + '
' + + '' + + '
' + + '' + + '
' + + '
' + ); +} + +function makeMeansDiv(name, code) { + let means = ''; + if (code == 'VLT001') { + commonCode.MS1.forEach(function (item){ + means += ''; + }) + } else { + commonCode.MS2.forEach(function (item){ + means += ''; + }) + } + + $('#spiParentDiv').after( + '
' + + '' + + '
' + + '' + + '
' + + '
' + ); +} + +function makePurposeDiv(name) { + + let purpose = ""; + commonCode.PPS.forEach(function (item){ + purpose += ''; + }) + + $('#meansDiv').append( + '' + + '
' + + '' + + '
' + ); +} + +function makeDestinationDiv(name) { + $('#meansDiv').append( + '' + + '
' + + '' + + '
' + ); +} + +function makeViolationAmountDiv() { + $('#spiParentDiv').after( + '
' + + '' + + '
' + + '' + + '
' + + '
' + ); +} + +function getIcaViewModal(icaKey){ + $.ajax({ + url: '/faStatistics/internationalCrimeArrest/internationalCrimeArrestViewModal', + data: {icaKey: icaKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#icaViewBody").empty().append(html) + $("#icaViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getIcaEditModal(icaKey){ + $.ajax({ + url: '/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal', + data: { + icaKey: icaKey + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#icaViewBody").empty(); + $("#icaEditModalContent").empty().append(html); + $("#icaEditModal").modal('show'); + $("#crimeAwarenessDtDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#caseSentDtDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("[name='caseOverview']").summernote({ + lang:'ko-KR', + height: 120, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + }, + error:function(){ + + } + }); +} + +function saveInternationalCrimeArrest(contentState){ + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#contentStatus").val(contentState); + contentFade("in"); + const formData = new FormData($("#icaEditForm")[0]); + + let spiList = []; + + $(".spi-list").each(function (){ + spiList.push({ + spiKey: $(this).find('input[name="spiKey"]').val() != undefined ? Number($(this).find('input[name="spiKey"]').val()) : null, + sex: $(this).find('select[name="sex"]').val(), + age: $(this).find('select[name="age"]').val(), + country: $(this).find('select[name="country"]').val(), + stayQualification: $(this).find('input[name="stayQualification"]').val() != undefined ? $(this).find('input[name="stayQualification"]').val() : null, + stayPeriodExpiredDt: $(this).find('input[name="stayPeriodExpiredDt"]').val() != undefined ? $(this).find('input[name="stayPeriodExpiredDt"]').val() : null, + countryEtc: $(this).find('input[name="countryEtc"]').val() != undefined ? $(this).find('input[name="countryEtc"]').val() : null + }); + }); + + for (let i=0; i < spiList.length; i++) { + if (spiList[i].spiKey != null) { + formData.append(`suspectPersonInfoList[${i}].spiKey`, spiList[i].spiKey); + } + formData.append(`suspectPersonInfoList[${i}].sex`, spiList[i].sex); + formData.append(`suspectPersonInfoList[${i}].age`, spiList[i].age); + formData.append(`suspectPersonInfoList[${i}].country`, spiList[i].country); + if (spiList[i].stayQualification != null) { + formData.append(`suspectPersonInfoList[${i}].stayQualification`, spiList[i].stayQualification); + } + if (spiList[i].stayPeriodExpiredDt != null) { + formData.append(`suspectPersonInfoList[${i}].stayPeriodExpiredDt`, spiList[i].stayPeriodExpiredDt); + } + if (spiList[i].countryEtc != null) { + formData.append(`suspectPersonInfoList[${i}].countryEtc`, spiList[i].countryEtc); + } + } + + $.ajax({ + type : 'POST', + data : formData, + url : "/faStatistics/internationalCrimeArrest/saveInternationalCrimeArrest", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#icaEditModal").modal('hide'); + // getIcaViewModal(result); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + +function contentCheck(){ + let flag = true; + if(!$('select[name="organ"]').val()){ + alert("지방청을 선택해주세요.") + flag = false; + } + + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/fipTarget/partInfo.js b/src/main/resources/static/js/fipTarget/partInfo.js new file mode 100644 index 0000000..c7d008d --- /dev/null +++ b/src/main/resources/static/js/fipTarget/partInfo.js @@ -0,0 +1,408 @@ + +$(document).on('click', '#addPartInfo', function (){ + $.ajax({ + url: '/target/partInfoEditModal', + type: 'GET', + dataType:"html", + success: function(html){ + $("#partInfoEditModalEditModalContent").empty().append(html); + $("#partInfoEditModal").modal('show'); + $("#rentPrice").hide(); + $("#utilityPrice").hide(); + changeManager($("#mgtOrgan").val()); + setUploadDiv(); + }, + error:function(){ + + } + }); +}) + +$(document).on('change', '#rentType', function (){ + if($("#rentType").val() == 'Y'){ + $("#rentPrice").show(); + }else{ + $("#rentPrice").hide(); + $("#rentPrice").val(''); + } +}); + +$(document).on('change', '#utilityType', function (){ + if($("#utilityType").val() == 'Y'){ + $("#utilityPrice").show(); + }else{ + $("#utilityPrice").hide(); + $("#utilityPrice").val(''); + } +}); + +$(document).on('change', '#mgtOrgan', function (){ + const ogCd = $(this).val(); + if(ogCd != ''){ + changeManager(ogCd); + }else{ + $("#piUserSeq").prop('disabled',true); + $("#piUserSeq").val(''); + } +}); + + +function changeManager(ogCd){ + $.ajax({ + url: '/target/partInfoSelecBox', + data: { + ogCd, + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#piUserSeq").empty().append(html); + $("#piUserSeq").prop('disabled',false); + }, + error:function(){ + } + }); +} + +$(document).on('change', '#mMgtOrgan', function (){ + const ogCd = $(this).val(); + if(ogCd != ''){ + $.ajax({ + url: '/target/partInfoSelecBox', + data: { + ogCd, + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#mPiUserSeq").empty().append(html); + $("#mPiUserSeq").prop('disabled',false); + }, + error:function(){ + } + }); + }else{ + $("#mPiUserSeq").prop('disabled',true); + $("#mPiUserSeq").val(''); + } +}); + +$(document).on('click', '#savePartInfo', function (){ + if($('#mgtOrgan').val() == ''){ + alert('해경서를 선택해주세요'); + $('#mgtOrgan').focus(); + return false; + } + if($('#piUserSeq').val() == ''){ + alert('담당자를 선택해주세요'); + $('#piUserSeq').focus(); + return false; + } + if($('#terminalNm').val() == ''){ + alert('터미널명을 입력해주세요'); + $('#terminalNm').focus(); + return false; + } + if($('#mpWorkType').val() != ''){ + if($('#mpPeopleCnt').val() == ''){ + alert('해경 인원수를 입력해주세요'); + $('#mpPeopleCnt').focus(); + return false; + } + } + if($('#plWorkType').val() != ''){ + if($('#plPeopleCnt').val() == ''){ + alert('육경 인원수를 입력해주세요'); + $('#plPeopleCnt').focus(); + return false; + } + } + if($("#rentType").val() == 'Y'){ + if($("#rentPrice").val() == ''){ + alert("임차료를 입력해주세요."); + $('#rentPrice').focus(); + return false; + } + } + if($("#utilityType").val() == 'Y'){ + if($("#utilityPrice").val() == ''){ + alert("공공요금을 입력해주세요."); + $('#utilityPrice').focus(); + return false; + } + } + if(confirm("저장하시겠습니까?")){ + document.getElementById("mgtOrgan").disabled = false; + contentFade("in"); + const formData = new FormData($("#partInfoSave")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $.ajax({ + type : 'POST', + data : formData, + url : "/target/savePartInfo", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '.partInfoTr', function (){ + const piSeq = (Number($(this).find(".piSeq").val())); + showModal(piSeq); +}) + +function showModal(piSeq){ + $.ajax({ + url: '/target/updatePartInfoPage', + data: { + piSeq: piSeq + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#partInfoEditModalEditModalContent").empty().append(html); + $("#partInfoEditModal").modal('show'); + if($("#mRentType").val() != 'Y'){ + $("#mRentPrice").hide(); + } + if($("#mUtilityType").val() != 'Y'){ + $("#mUtilityPrice").hide(); + } + setUploadDiv(); + }, + error:function(){ + + } + }); +} + +$(function(){ + $("#startDate").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) + +$(document).on('click', '#goExcel', function (){ + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + $('input[name=excel]').val('Y'); + $('#searchFm').submit(); + $('input[name=excel]').val(''); + }else{ + false; + } +}) + +$(document).on('change', '#mRentType', function (){ + if($("#mRentType").val() == 'Y'){ + $("#mRentPrice").show(); + }else{ + $("#mRentPrice").hide(); + $("#mRentPrice").val(''); + } +}); + +$(document).on('change', '#mUtilityType', function (){ + if($("#mUtilityType").val() == 'Y'){ + $("#mUtilityPrice").show(); + }else{ + $("#mUtilityPrice").hide(); + $("#mUtilityPrice").val(''); + } +}); + +$(document).on('click', '#updatePartInfo', function (){ + if($('#mMgtOrgan').val() == ''){ + alert('해경서를 선택해주세요'); + $('#mMgtOrgan').focus(); + return false; + } + if($('#mPiUserSeq').val() == ''){ + alert('담당자를 선택해주세요'); + $('#mPiUserSeq').focus(); + return false; + } + if($('#mTerminalNm').val() == ''){ + alert('터미널명을 입력해주세요'); + $('#mTerminalNm').focus(); + return false; + } + if($('#mMpWorkType').val() != ''){ + if($('#mMpPeopleCnt').val() == ''){ + alert('해경 인원수를 입력해주세요'); + $('#mMpPeopleCnt').focus(); + return false; + } + } + if($('#mPlWorkType').val() != ''){ + if($('#mPlPeopleCnt').val() == ''){ + alert('육경 인원수를 입력해주세요'); + $('#mPlPeopleCnt').focus(); + return false; + } + } + if($("#mRentType").val() == 'Y'){ + if($("#mRentPrice").val() == ''){ + alert("임차료를 입력해주세요."); + $('#mRentPrice').focus(); + return false; + } + } + if($("#mUtilityType").val() == 'Y'){ + if($("#mUtilityPrice").val() == ''){ + alert("공공요금을 입력해주세요."); + $('#mUtilityPrice').focus(); + return false; + } + } + if(confirm("수정하시겠습니까?")){ + document.getElementById("mMgtOrgan").disabled = false; + contentFade("in"); + const formData = new FormData($("#partInfoUpdate")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/target/updatePartInfo", + processData: false, + contentType: false, + success : function(result) { + alert("수정되었습니다."); + contentFade("out"); + showModal(result); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +function showHistory(piSeq){ + $.ajax({ + url: '/target/PartInfoHistoryPage', + data: { + piSeq: piSeq + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#partInfoEditModalEditModalContent").empty().append(html); + $("#partInfoEditModal").modal('show'); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '.historyInfoTr', function (){ + $(this).find('.hisChk').prop('checked',true) + if($(this).find('.hisChk').prop('checked')){ + $('.hisChk').prop('checked',false); + $(this).find('.hisChk').prop('checked',true) + } + $.ajax({ + url: '/target/partInfoHistoryView', + data: { + piSeq: Number($(this).find(".piSeq").val()), + versionNo : Number($(this).find(".verNo").val()) + }, + type: 'GET', + dataType:"json", + success: function(data){ + $('#hMgtOrgan').val(data.mgtOrgan); + $('#hLandPolice').val(data.landPolice); + $('#hPiUserSeq').val(data.piManagerName); + $('#hMpWorkType').val(data.mpWorkType); + $('#hMpPeopleCnt').val(data.mpPeopleCnt); + $('#hMpDescription').val(data.mpDescription); + $('#hPlWorkType').val(data.plWorkType); + $('#hPlPeopleCnt').val(data.plPeopleCnt); + $('#hPlDescription').val(data.plDescription); + $('#hTerminalNm').val(data.terminalNm); + $('#hRentType').val(data.rentType); + $('#hRentPrice').val(data.rentPrice); + $('#hUtilityType').val(data.utilityType); + $('#hUtilityPrice').val(data.utilityPrice); + if(data.fileList[0].origNm != null){ + $('#historyFile').empty(); + for(var i=0;i' + ); + } + }else{ + $('#historyFile').empty().append( + '' + ); + } + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#deletePartInfo', function (){ + const piSeq = $('input[name=piSeq]').val(); + if(confirm("삭제하시겠습니까?")){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/target/deletePartInfo", + data : JSON.stringify({piSeq:piSeq}), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("삭제 처리되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제 처리에 실패하였습니다"); + } + }) + + } +}) + +$(document).on('click', '.fileDownPartInfo', function (){ + const target = $(this) + let url = "/target/partInfoFileDownload?" + url += "&fileSeq="+target.attr("data-fileSeq"); + url += "&piSeq="+target.attr("data-piSeq"); + url += "&versionNo="+target.attr("data-verNo"); + window.open(encodeURI(url)); +}) + +$(document).on('click', '.btn-close', function (){ + location.reload(); +}) + +$(document).on('click', '#btn-close', function (){ + location.reload(); +}) + + + diff --git a/src/main/resources/static/js/fipTarget/partWork.js b/src/main/resources/static/js/fipTarget/partWork.js new file mode 100644 index 0000000..5903d66 --- /dev/null +++ b/src/main/resources/static/js/fipTarget/partWork.js @@ -0,0 +1,216 @@ + +$(document).on('click', '#addPartWork', function (){ + $.ajax({ + url: '/target/partWorkEditModal', + type: 'GET', + dataType:"html", + success: function(html){ + $("#partWorkEditModalEditModalContent").empty().append(html); + $("#partWorkEditModal").modal('show'); + setUploadDiv(); + $("#workDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#workInfo").summernote({ + lang:'ko-KR', + height: 350, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#saveBtn', function (){ + if($('#piSeq').val() == ''){ + alert('터미널명을 선택해주세요'); + $('#piSeq').focus(); + return false; + } + if($('input:radio[name="workType"]:checked').length < 1){ + alert('종류를 선택해주세요'); + return false; + } + if(confirm("저장하시겠습니까?")){ + $('#saveYn').val('Y'); + contentFade("in"); + savePartWork(); + } +}) + +$(document).on('click', '#temporarySaveBtn', function (){ + if($('#piSeq').val() == ''){ + alert('터미널명을 선택해주세요'); + $('#piSeq').focus(); + return false; + } + if($('input:radio[name="workType"]:checked').length < 1){ + alert('종류를 선택해주세요'); + return false; + } + if(confirm("임시 저장하시겠습니까?")){ + $('#saveYn').val('N'); + contentFade("in"); + savePartWork(); + } +}) + +function savePartWork(){ + const formData = new FormData($("#partWorkSaveFm")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $.ajax({ + type : 'POST', + data : formData, + url : "/target/savePartWork", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) +} + +$(document).on('click', '.partWorkTr', function (){ + const pwSeq = (Number($(this).find(".pwSeq").val())); + const piSeq = (Number($(this).find(".piSeq").val())); + showModal(pwSeq,piSeq); +}) + +function showModal(pwSeq,piSeq){ + $.ajax({ + url: '/target/partWorkView', + data: { + pwSeq: pwSeq, + piSeq: piSeq + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#partWorkEditModalEditModalContent").empty().append(html); + $("#partWorkEditModal").modal('show'); + setUploadDiv(); + $("#mWorkDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#mWorkInfo").summernote({ + lang:'ko-KR', + height: 350, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#updateBtn', function (){ + if(confirm("수정하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#partWorkUpdateFm")[0]); + formData.append('saveYn','Y'); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/target/updatePartWork", + processData: false, + contentType: false, + success : function(data) { + alert("수정되었습니다."); + contentFade("out"); + showModal(data.pwSeq,data.piSeq); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '#deletePartWork', function (){ + const pwSeq = $('input[name=pwSeq]').val(); + const piSeq = $('#mPiSeq').val(); + console.log(piSeq); + if(confirm("삭제하시겠습니까?")){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/target/deletePartWork", + data : JSON.stringify({pwSeq:pwSeq, + piSeq:piSeq}), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("삭제 처리되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제 처리에 실패하였습니다"); + } + }) + } +}) + +$(document).on('click', '.fileDownPartWork', function (){ + const target = $(this) + let url = "/target/partWorkFileDownload?" + url += "&fileSeq="+target.attr("data-fileSeq"); + url += "&pwSeq="+target.attr("data-pwSeq"); + url += "&piSeq="+target.attr("data-piSeq"); + window.open(encodeURI(url)); +}) + +$(document).on('click', '#goExcel', function (){ + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + $('input[name=excel]').val('Y'); + $('#searchFm').submit(); + $('input[name=excel]').val(''); + }else{ + false; + } +}) + +$(document).on('click', '.btn-close', function (){ + location.reload(); +}) + +$(document).on('click', '#btn-close', function (){ + location.reload(); +}) \ No newline at end of file diff --git a/src/main/resources/static/js/fipTarget/vulnerable.js b/src/main/resources/static/js/fipTarget/vulnerable.js new file mode 100644 index 0000000..bad730f --- /dev/null +++ b/src/main/resources/static/js/fipTarget/vulnerable.js @@ -0,0 +1,197 @@ + +$(document).ready(function(){ + $(".table_id").each(function(){ + var rows = $(".table_id:contains('"+$(this).text()+"')"); + if(rows.length > 1){ + rows.eq(0).attr("rowspan", rows.length); + rows.not(":eq(0)").remove(); + } + }) + +}); + +$(document).on('click', '#addVuln', function (){ + const vulnKey =null; + vulnEditModal(vulnKey); +}) + +function vulnEditModal(vulnKey){ + $.ajax({ + url: '/target/vulnEditModal', + type: 'GET', + data: {vulnKey:vulnKey}, + dataType:"html", + success: function(html){ + $("#vulnEditModalContent").empty().append(html); + $("#vulnEditModal").modal('show'); + setUploadDiv(); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#saveVuln', function() { + if (Validation()) { + if (confirm("저장하시겠습니까?")) { + document.getElementById("mgtOrgan").disabled = false; + contentFade("in"); + const formData = new FormData($("#saveVulnoFm")[0]); + for (const file of files) { + if (!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $.ajax({ + type: 'POST', + data: formData, + url: "/target/saveVulnerable", + processData: false, + contentType: false, + success: function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error: function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +}) + +$(document).on('click', '#infoModal', function (){ + const mgtOrgan = $(this).attr("data-mgtOrgan"); + + $.ajax({ + url: '/target/vulnInfoModal', + type: 'GET', + data: {mgtOrgan:mgtOrgan}, + dataType:"html", + success: function(html){ + $("#vulnEditModalContent").empty().append(html); + $("#vulnEditModal").modal('show'); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#viewModal', function (){ + const vulnKey = $(this).attr("data-vulnKey"); + + $.ajax({ + url: '/target/vulnViewModal', + type: 'GET', + data: {vulnKey:vulnKey}, + dataType:"html", + success: function(html){ + $("#vulnEditModalContent").empty().append(html); + $("#vulnEditModal").modal('show'); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#fileDown', function (){ + const target = $(this) + let url = "/target/vulnFileDownload?" + url += "&fileSeq="+target.attr("data-fileSeq"); + url += "&vulnKey="+target.attr("data-vulnKey"); + window.open(encodeURI(url)); +}) + +$(document).on('click', '#deleteVuln', function (){ + const vulnKey = $('input[name=vulnKey]').val(); + if(confirm("삭제하시겠습니까?")){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/target/deleteVulnerable", + data : JSON.stringify({vulnKey:vulnKey}), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("삭제 처리되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제 처리에 실패하였습니다"); + } + }) + + } + +}) + +$(document).on('click', '#goEdit', function (){ + const vulnKey = $(this).attr("data-vulnKey"); + vulnEditModal(vulnKey); +}) + +$(document).on('click', '#updateVuln', function (){ + if(Validation()){ + if(confirm("수정하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#saveVulnoFm")[0]); + document.getElementById("mgtOrgan").disabled = false; + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/target/saveVulnerable", + processData: false, + contentType: false, + success : function(data) { + alert("수정되었습니다."); + contentFade("out"); + vulnEditModal(data) + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +}) + +function Validation(){ + let flag = true; + if($('#mgtOrgan').val() == ""){ + alert("경찰서를 선택해주세요."); + $('#mgtOrgan').focus(); + flag = false; + } + if($('#vulnNm').val() == ""){ + alert("취약지명을 입력해주세요."); + $('#vulnNm').focus(); + flag = false; + } + if($('#vulnType').val() == ""){ + alert("취약등급을 선택해 주세요."); + $('#vulnType').focus(); + flag = false; + } + return flag; +} + +$(document).on('click', '#btn-close', function (){ + location.reload(); +}) + + + diff --git a/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js b/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js new file mode 100644 index 0000000..8587cea --- /dev/null +++ b/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js @@ -0,0 +1,279 @@ + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) +$(document).on('click', '#affairTab', function (){ + location.href = "/affair/affairMgt?affairCategory="+$("#affairCategory").val(); +}) +$(document).on('click', '#stayTab', function (){ + location.href = "/affair/stayPage?affairCategory="+$("#affairCategory").val(); +}) +$(document).on('click', '#commitTab', function (){ + location.href = "/affair/commitPage?affairCategory="+$("#affairCategory").val(); +}) +$(document).on('click', '.affairTr', function (event){ + const target = event.target; + if(!(target.className === "apprvTd" || $(target).parents(".apprvTd").length>0)){ + const chkBox = $(this).find(".rowChkBox"); + if(chkBox.length>0){ + $(".trChkBox").prop("checked", false); + chkBox[0].checked = !chkBox[0].checked; + } + getAffairViewModal(Number($(this).find(".affairKey").val())); + } +}) +$(document).on('click', '#addAffairBtn', function (){ + getAffairEditModal(null) +}) +$(document).on('click', '#editAffairBtn', function (){ + $("#affairViewModal").modal('hide'); + getAffairEditModal(Number($("#affairViewBody").find("[name='affairKey']").val())); +}) + +$(document).on('change', '#autoDeleteSelector', function (){ + let deleteDt = ""; + if(this.value !== ""){ + const nowDt = new Date(); + nowDt.setMonth(nowDt.getMonth()+Number(this.value)); + deleteDt = nowDt.getFullYear() + +"-"+("0"+(nowDt.getMonth()+1)).slice(-2) + +"-"+("0"+nowDt.getDate()).slice(-2); + } + $("#autoDelete").val(deleteDt); +}) + +$(document).on('click', '#saveAffairBtn', function (){ + saveAffair('DST002') +}) +$(document).on('click', '#saveTempBtn', function (){ + saveAffair('DST001') +}) +$(document).on('click', '.apprvBtn', function (){ + const affairState = $(this).attr("data-affairstate"); + let flag = true; + if(affairState==="DST006"){ // 부장 승인 + if(!$("#affairRate").val()){ + alert("견문평가를 선택해주세요.") + flag = false; + } + }else if(affairState==="DST005"){ // 부장 반려 + $("#organUp").prop("checked", false); + $("#affairRate").val(""); + } + if(flag){ + if(confirm($(this).val()+"하시겠습니까?")){ + const apprvType = $(this).attr("data-apprvtype"); + $((apprvType === "section"?"#sectionApprv":"#headApprv")).val(affairState) + const formData = new FormData($("#apprvForm")[0]); + const ratingList = []; + const apprv = {} + for (let data of formData.entries()) { + if(data[0] !== undefined){ + apprv[data[0]] = data[1]; + } + } + ratingList.push(apprv); + affairStateChange(ratingList); + } + } +}) + +$(document).on('click', '#tableApprvBtn', function (){ + const ratingList = []; + const apprvAuth = $(this).attr("data-apprvauth") + $.each($(".apprvTd"), function (idx, el) { + if (apprvAuth === "APC003" || apprvAuth === "APC004") { + const chkbox = $(el).find(".apprvChkbox:checked") + if(chkbox.length>0){ + const affairRating = {}; + affairRating["affairKey"] = Number($(el).find(".affairKey").val()); + affairRating["sectionApprv"] = chkbox.val(); + ratingList.push(affairRating); + } + } else { + const chkbox = $(el).find(".apprvChkbox:checked") + const selectorValue = $(el).find(".ratingSelector").val() + if(chkbox.length>0){ + const affairRating = {}; + affairRating["affairKey"] = Number($(el).find(".affairKey").val()); + affairRating["headApprv"] = chkbox.val(); + if(selectorValue !== ""){ + affairRating["affairRate"] = selectorValue; + affairRating["organUp"] = $(el).find(".organUpChkBox").prop("checked")?"T":"F"; + } + ratingList.push(affairRating); + } + } + }) + affairStateChange(ratingList); +}) + +$(document).on('change', '.apprvChkbox', function (){ + if(this.value === "DST006"){ + const apprvTd = $(this).parents(".apprvTd"); + apprvTd.find(".ratingSelector").attr("disabled", false) + apprvTd.find(".organUpChkBox").attr("disabled", false) + }else if(this.value === "DST005"){ + const apprvTd = $(this).parents(".apprvTd"); + const ratingSelector = apprvTd.find(".ratingSelector") + ratingSelector.val(""); + ratingSelector.attr("disabled", true) + const organUpChkBox = apprvTd.find(".organUpChkBox") + organUpChkBox.prop("checked", false); + organUpChkBox.attr("disabled", true) + } +}) + +function getAffairViewModal(affairKey){ + $.ajax({ + url: '/affair/affairViewModal', + data: { + affairKey: affairKey, + affairCategory: $("#affairCategory").val() + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#affairViewBody").empty().append(html) + $("#affairViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getAffairEditModal(affairKey){ + $.ajax({ + url: '/affair/affairEditModal', + data: { + affairKey: affairKey, + affairCategory: $("#affairCategory").val() + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#affairEditModalContent").empty().append(html) + $("#affairEditModal").modal('show'); + $("#reportDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#autoDelete").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#content").summernote({ + lang:'ko-KR', + height: 270, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + setUploadDiv(); + }, + error:function(){ + + } + }); +} +function saveAffair(affairStatus){ + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#affairStatus").val(affairStatus); + contentFade("in"); + const formData = new FormData($("#affairEditForm")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/affair/saveAffair", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#affairEditModal").modal('hide'); + getAffairViewModal(result); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + +function affairStateChange(ratingList){ + contentFade("in") + $.ajax({ + type : 'POST', + url : "/affair/affairStateChange", + data : JSON.stringify(ratingList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + alert("저장되었습니다") + contentFade("out"); + if(result !== 0){ + getAffairViewModal(result); + }else{ + location.reload() + } + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) +} +function contentCheck(){ + let flag = true; + if(!$("#title").val()){ + alert("제목을 입력해주세요.") + flag = false; + } + if(!$("#affairType1").val()){ + alert("분야1을 입력해주세요.") + flag = false; + } + if(!$("#affairType2").val()){ + alert("분야2을 입력해주세요.") + flag = false; + } + if(!$("#affairType3").val()){ + alert("분야3을 입력해주세요.") + flag = false; + } + if(!$("#affairType4").val()){ + alert("분야4을 입력해주세요.") + flag = false; + } + if(!$("#viewStatus").val()){ + alert("공개여부를 입력해주세요.") + flag = false; + } + if(!$("#hashTags").val()){ + alert("해시태그를 입력해주세요.") + flag = false; + } + flag = fileCheck(flag, files); + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js b/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js new file mode 100644 index 0000000..e1962ec --- /dev/null +++ b/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js @@ -0,0 +1,189 @@ + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) + +$(document).on('click', '#planTab', function (){ + location.href = "/affairPlan/planMgt"; +}) +$(document).on('click', '#stayTab', function (){ + location.href = "/affairPlan/stayPage"; +}) +$(document).on('click', '#commitTab', function (){ + location.href = "/affairPlan/commitPage"; +}) + +$(document).on('click', '#addPlanBtn', function (){ + getPlanEditModal(null) +}) +$(document).on('click', '#editPlanBtn', function (){ + $("#planViewModal").modal('hide'); + getPlanEditModal(Number($("#planViewBody").find("[name='planKey']").val())); +}) + +$(document).on('click', '#planAddBtn', function (){ + $("#planDiv").append("") +}) + +$(document).on('click', '#detailPlanAddBtn', function (){ + const detailPlanDiv = $("#detailPlanDiv"); + detailPlanDiv.append(""); + const lastAppendTextarea = detailPlanDiv.children()[detailPlanDiv.children().length-1]; + $(lastAppendTextarea).summernote({ + lang:'ko-KR', + height: 120, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); +}) + +$(document).on('click', '#savePlanBtn', function (){ + savePlan('DST002') +}) + +$(document).on('click', '#saveTempBtn', function (){ + savePlan('DST001') +}) + +$(document).on('click', '.planTr', function (){ + const chkBox = $(this).find(".rowChkBox"); + if(chkBox.length>0){ + $(".trChkBox").prop("checked", false); + chkBox[0].checked = !chkBox[0].checked; + } + getPlanViewModal(Number($(this).find(".planKey").val())); +}) + +$(document).on('click', '.apprvBtn', function (){ + $("#apprvFormPlanKey").val($("#viewModalPlanKey").val()); + $("#viewModalApprvValue").val($(this).attr("data-planstate")); + if(confirm($(this).val()+"하시겠습니까?")){ + const formData = new FormData($("#apprvForm")[0]); + contentFade("in") + $.ajax({ + type : 'POST', + data : formData, + url : "/affairPlan/planStateChange", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + alert("저장되었습니다") + getPlanViewModal(result); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) + } +}) + +function getPlanViewModal(planKey){ + $.ajax({ + url: '/affairPlan/planViewModal', + data: {planKey: planKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#planViewBody").empty().append(html) + $("#planViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getPlanEditModal(planKey){ + $.ajax({ + url: '/affairPlan/planEditModal', + data: {planKey: planKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#planEditModalContent").empty().append(html) + $("#planEditModal").modal('show'); + $("#planDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("[name='detailPlanInfos']").summernote({ + lang:'ko-KR', + height: 120, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + setUploadDiv(); + }, + error:function(){ + + } + }); +} +function savePlan(planState){ + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#planState").val(planState); + contentFade("in"); + const formData = new FormData($("#planEditForm")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/affairPlan/savePlan", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#planEditModal").modal('hide'); + getPlanViewModal(result); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + + +function contentCheck(){ + let flag = true; + if(!$("#contentTitle").val()){ + alert("제목을 입력해주세요.") + flag = false; + } + if(!$("#planDt").val()){ + alert("시행일자를 입력해주세요.") + flag = false; + } + flag = fileCheck(flag, files); + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/igActivities/fpiMgt/result/resultMgt.js b/src/main/resources/static/js/igActivities/fpiMgt/result/resultMgt.js new file mode 100644 index 0000000..e7c9fce --- /dev/null +++ b/src/main/resources/static/js/igActivities/fpiMgt/result/resultMgt.js @@ -0,0 +1,332 @@ + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) + +$(document).on('click', '#resultTab', function (){ + location.href = "/affairResult/resultMgt"; +}) +$(document).on('click', '#stayTab', function (){ + location.href = "/affairResult/stayPage"; +}) +$(document).on('click', '#commitTab', function (){ + location.href = "/affairResult/commitPage"; +}) + +$(document).on('click', '#addResultBtn', function (){ + getResultEditModal(null) +}) +$(document).on('click', '#editResultBtn', function (){ + $("#resultViewModal").modal('hide'); + getResultEditModal(Number($("#resultViewBody").find("[name='resultKey']").val())); +}) + +$(document).on('click', '#resultAddBtn', function (){ + $("#resultDiv").append("") +}) + +$(document).on('change', '#clearTitle', function (){ + $("#resultTitle").val(this.value) +}) +$(document).on('change', '#workStartDt', function (){ + $(".workStartDtCopy").val(this.value) +}) +$(document).on('change', '#workEndDt', function (){ + $(".workEndDtCopy").val(this.value) +}) +$(document).on('change', '#usePrice', function (){ + $("#usePriceCopy").val(this.value) +}) + +$(document).on('click', '#affairModalBtn', function (){ + const workStartDt = $("#workStartDt").val() + const workEndDt = $("#workEndDt").val() + if(!workStartDt||!workEndDt){ + alert("청산보고서의 사업기간을 입력해주세요."); + }else{ + $.ajax({ + url: '/affairResult/affairListModal', + data: { + startDate: workStartDt, + endDate: workEndDt + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#affairListModalContent").empty().append(html) + $("#affairListModal").modal('show'); + }, + error:function(){ + + } + }); + } +}) +$(document).on('click', '#getAffairBtn', function (){ + let affairListTbody = ""; + $.each($(".rowChkBox:checked"), function (idx, chkBox){ + const affairTr = $(chkBox).parents(".affairTr") + affairListTbody += ""; + affairListTbody += ""; + affairListTbody += ""+affairTr.find(".wrtDt")[0].innerText+""; + affairListTbody += ""+affairTr.find(".title")[0].innerText+""; + if(affairTr.find(".affairRate").length>0){ + affairListTbody += ""+(affairTr.find(".affairRate")[0].innerText+(affairTr.find(".organUp")[0].innerText==="O"?"(상보)":""))+""; + }else{ + affairListTbody += ""; + } + affairListTbody += ""; + }) + $("#affairListTbody").empty().append(affairListTbody); + $("#affairListModal").modal("hide"); +}) + +$(document).on('click', '.rowDeleteBtn', function (){ + const isClearInfo = $(this).parents("#clearInfoRow").length !== 0; + const infoSeq = $(this).parents(".infoRow").find(".infoSeq").val(); + $(this).parents(".infoRow").remove(); + if(isClearInfo){ + setInfoSeq($("#clearInfoRow"), infoSeq); + }else{ + setInfoSeq($("#resultInfoRow"), infoSeq); + } +}) + +$(document).on('click', '#clearInfoAddBtn', function (){ + const infoRow = $("#clearInfoRow"); + $.ajax({ + url: '/affairResult/getClearInfoRow', + data: {infoSeq: $(".clearInfoSeq").length}, + type: 'GET', + dataType:"html", + success: function(html){ + infoRow.append(html); + }, + error:function(){ + + } + }); +}) +$(document).on('click', '#resultInfoAddBtn', function (){ + const infoRow = $("#resultInfoRow"); + const infoSeq = $(".resultInfoSeq").length; + $.ajax({ + url: '/affairResult/getResultInfoRow', + data: {infoSeq: infoSeq}, + type: 'GET', + dataType:"html", + success: function(html){ + infoRow.append(html); + $("#contactInfo"+infoSeq).summernote({ + lang:'ko-KR', + height: 60, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#saveResultBtn', function (){ + saveResult('DST002') +}) + +$(document).on('click', '#saveTempBtn', function (){ + saveResult('DST001') +}) + +$(document).on('click', '.resultTr', function (){ + const chkBox = $(this).find(".rowChkBox"); + if(chkBox.length>0){ + $(".trChkBox").prop("checked", false); + chkBox[0].checked = !chkBox[0].checked; + } + getResultViewModal(Number($(this).find(".resultKey").val())); +}) + +$(document).on('click', '.apprvBtn', function (){ + $("#viewModalApprvValue").val($(this).attr("data-resultstate")); + if(confirm($(this).val()+"하시겠습니까?")){ + const formData = new FormData($("#apprvForm")[0]); + contentFade("in") + $.ajax({ + type : 'POST', + data : formData, + url : "/affairResult/resultStateChange", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + alert("저장되었습니다") + getResultViewModal(result); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) + } +}) + +function getResultViewModal(resultKey){ + $.ajax({ + url: '/affairResult/resultViewModal', + data: {resultKey: resultKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#resultViewBody").empty().append(html) + $("#resultViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getResultEditModal(resultKey){ + $.ajax({ + url: '/affairResult/resultEditModal', + data: {resultKey: resultKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#resultEditModalContent").empty().append(html) + $("#resultEditModal").modal('show'); + $("#useDateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#workDateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $(".contactInfo").summernote({ + lang:'ko-KR', + height: 60, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + setUploadDiv(); + }, + error:function(){ + + } + }); +} +function saveResult(resultState){ + if(resultState === "DST001" || contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#resultState").val(resultState); + contentFade("in"); + const formData = new FormData($("#resultEditForm")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/affairResult/saveResult", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#resultEditModal").modal('hide'); + getResultViewModal(result); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + +function setInfoSeq(target, infoSeq){ + $.each(target.find("div.infoSeq"), function (idx, child) { + let childInfoSeq = Number(child.innerText); + if(childInfoSeq-->Number(infoSeq)){ + const infoRow = $(child).parent(".infoRow") + child.innerText = childInfoSeq; + infoRow[0].id = "row"+idx; + $.each(infoRow.find("input"), function (idx2, input){ + input.name = input.name.replace("["+childInfoSeq+"]", "["+idx+"]"); + if(input.name.indexOf("infoSeq")>0){ + input.value -= input.value; + } + }) + $.each(infoRow.find("select"), function (idx2, select){ + select.name = select.name.replace("["+childInfoSeq+"]", "["+idx+"]"); + }) + $.each(infoRow.find("textarea"), function (idx2, textarea){ + if(textarea.id !== ''){ + textarea.id = "contactInfo"+idx; + } + if(textarea.name !== ''){ + textarea.name = textarea.name.replace("["+childInfoSeq+"]", "["+idx+"]"); + } + }) + } + }) +} + +function contentCheck(){ + let flag = true; + if(!$("#clearTitle").val()){ + alert("청산보고서 제목을 입력해주세요.") + flag = false; + } + if(!$("#workStartDt").val()){ + alert("사업기간 시작일을 입력해주세요.") + flag = false; + } + if(!$("#workEndDt").val()){ + alert("사업기간 종료일을 입력해주세요.") + flag = false; + } + if(!$("#planPrice").val()){ + alert("계획금액을 입력해주세요.") + flag = false; + } + if(!$("#usePrice").val()){ + alert("집행액을 입력해주세요.") + flag = false; + } + if($(".clearInfoSeq").length<=0){ + alert("세부 집행내역을 입력해주세요.") + flag = false; + } + if($(".resultInfoSeq").length<=0){ + alert("활동내용을 입력해주세요.") + flag = false; + } + flag = fileCheck(flag, files); + return flag; +} diff --git a/src/main/resources/static/js/ivsgt/ivsgt.js b/src/main/resources/static/js/ivsgt/ivsgt.js new file mode 100644 index 0000000..d1145d0 --- /dev/null +++ b/src/main/resources/static/js/ivsgt/ivsgt.js @@ -0,0 +1,204 @@ +$(document).on('click', '#ivsgtAddBtn', function () { + getIvsgtEditModal(null, $("input[name='ivsgtType']").val()); +}); + +$(document).on('click', '#ivsgtEditBtn', function () { + $("#ivsgtViewModal").modal('hide'); + getIvsgtEditModal(Number($("#ivsgtViewBody").find("[name='ivsgtKey']").val())); +}); + + +$(document).on('click', '#contentInfoAddBtn', function (){ + $("#contentInfoDiv").append("") +}); + +$(document).on('click', '#saveIvsgtBtn', function (){ + saveBoardInvestigation('N') +}); + +$(document).on('click', '#saveTempBtn', function (){ + saveBoardInvestigation('Y') +}); + +$(document).on('click', '.tr', function (){ + getIvsgtViewModal($(this).data('key')); +}); + +$(document).on('click', '.ivsgtTab', function (){ + location.href = "/ivsgt/"+ $(this).data("ivsgt-type"); +}); + +$(document).on('click', '#relatedReportSearchBtn', function (){ + let contentTitle = $("#ivsgtEditBody").find("[name='searchTitle']").val(); + let ivsgtType = $("#ivsgtEditBody").find("[name='ivsgtType']").val(); + getSearchViewModal(ivsgtType, contentTitle) +}); + +$(document).on('click', '#completeBtn', function (){ + const checkbox = document.getElementsByClassName('reportChk'); + + Array.from(checkbox).forEach(function(element) { + if (element.checked) { + $('#relatedReportSearchDiv').append( + '' + + '' + + '
' + + '
' + ) + } + }); +}); + +$(document).on('click', '.cancel-btn', function (){ + $(this).parent().remove(); + let deleteKey = $(this).parent().children("input[name='relatedReportsKeyList']").val(); + $("#ivsgtEditForm").append(''); +}); + + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}); + + +function getIvsgtViewModal(ivsgtKey){ + $.ajax({ + url: '/ivsgt/ivsgtViewModal', + data: {ivsgtKey: ivsgtKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#ivsgtViewBody").empty().append(html) + $("#ivsgtViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getIvsgtEditModal(ivsgtKey, ivsgtType){ + $.ajax({ + url: '/ivsgt/ivsgtEditModal', + data: { + ivsgtKey: ivsgtKey, + ivsgtType: ivsgtType + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#ivsgtViewBody").empty(); + $("#ivsgtEditModalContent").empty().append(html) + $("#ivsgtEditModal").modal('show'); + $("[name='contentInfo']").summernote({ + lang:'ko-KR', + height: 120, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + $("[name='contentMain']").summernote({ + lang:'ko-KR', + height: 120, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + setUploadDiv(); + }, + error:function(){ + + } + }); +} + +function getSearchViewModal(ivsgtType, contentTitle){ + $.ajax({ + url: '/ivsgt/searchViewModal', + data: { + contentTitle: contentTitle, + ivsgtType: ivsgtType + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#searchViewBody").empty().append(html) + $("#searchViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function saveBoardInvestigation(contentState){ + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#contentStatus").val(contentState); + contentFade("in"); + const formData = new FormData($("#ivsgtEditForm")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/ivsgt/saveBoardInvestigation", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#ivsgtEditModal").modal('hide'); + getIvsgtViewModal(result); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + +function contentCheck(){ + let flag = true; + if(!$("#contentTitle").val()){ + alert("제목을 입력해주세요.") + flag = false; + } + else if(!$("#arrestCd").val()){ + alert("검거유형1을 선택해주세요.") + flag = false; + } + else if(!$("#arrestCd2").val()){ + alert("검거유형2를 선택해주세요.") + flag = false; + } + else if(!$("#relatedReport").is(':checked') && $("input[name='ivsgtType']").val() != "arrest") { + if ($('input[name="relatedReportsText"]').length < 1) { + alert("연관보고서를 확인해 주세요.") + flag = false; + } + } + + flag = fileCheck(flag, files); + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/login/login.js b/src/main/resources/static/js/login/login.js new file mode 100644 index 0000000..d6c1350 --- /dev/null +++ b/src/main/resources/static/js/login/login.js @@ -0,0 +1,88 @@ + + +$(document).on('click', '#saveBtn', function (){ + if(valueCheck("userInfoInsert")){ + if(confirm("저장하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#userInfoInsert")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/user/insertUserInfo", + processData: false, + contentType: false, + success : function(result) { + if(result === "userIdDuplication"){ + alert("등록된 아이디입니다.") + }else{ + alert("저장되었습니다.\n담당자 승인 후 로그인 가능합니다.") + $("#closeModalBtn").click(); + $("#searchBtn").click(); + } + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +}) + +function valueCheck(form){ + const targetForm = $("#"+form); + const userId = targetForm.find("#userId").val(); + const password = targetForm.find("#modalPassword"); + const passwordConfirm = targetForm.find("#passwordConfirm"); + const userNm = targetForm.find("#userNm").val(); + const ogCd = targetForm.find("#ogCd").val(); + const ofcCd = targetForm.find("#ofcCd").val(); + let returnFlag = true; + + if(!userId){ + alert("아이디를 입력해주세요."); + returnFlag = false; + }else{ + const idReg = /^[a-z]+[a-z0-9]{5,19}$/g; + if(!idReg.test(userId)){ + returnFlag = false; + alert("아이디 조건이 맞지 않습니다.") + } + } + if(!password[0].disabled && !password.val()){ + alert("비밀번호를 입력해주세요."); + returnFlag = false; + } + if(!password[0].disabled && !passwordConfirm.val()){ + alert("비밀번호 확인을 입력해주세요."); + returnFlag = false; + } + if(!userNm){ + alert("이름 입력해주세요."); + returnFlag = false; + } + if(returnFlag){ + const passwordReg = /^(?=.*[a-zA-z])(?=.*[0-9])(?=.*[$`~!@$!%*#^?&\\(\\)\-_=+]).{8,16}$/; + if(!password[0].disabled){ + if(!passwordReg.test(password.val())){ + alert("비밀번호 조건이 맞지 않습니다.") + returnFlag = false; + }else{ + if(password.val() !== passwordConfirm.val()){ + alert("비밀번호가 같지 않습니다."); + returnFlag = false; + } + } + } + } + if(!ogCd){ + alert("관서를 선택해주세요."); + returnFlag = false; + } + if(!ofcCd){ + alert("부서를 선택해주세요."); + returnFlag = false; + } + return returnFlag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/menuMgt/menuMgt.js b/src/main/resources/static/js/menuMgt/menuMgt.js new file mode 100644 index 0000000..b580cde --- /dev/null +++ b/src/main/resources/static/js/menuMgt/menuMgt.js @@ -0,0 +1,117 @@ + +$(document).on('click', '#addMenuBtn', function (){ + $("#menuEditModalLabel").text("메뉴 추가") + getModalForm(); +}) +$(document).on('click', '.menuTr', function (event){ + if(event.target.classList.value!=="menuCheckBox"){ + if(event.target.cellIndex !== 0){ + $("#menuEditModalLabel").text("메뉴 수정") + const row = $(this) + getModalForm({ + menuKey: row.find(".menuKey").val(), + cat1Cd: row.find(".cat1Cd").val(), + cat2Cd: row.find(".cat2Cd").val(), + cat3Cd: row.find(".cat3Cd").val(), + menuUrl: row.find(".menuUrl").val(), + approvalChk: row.find(".approvalChk").val(), + useChk: row.find(".useChk").val() + }) + } + } +}) +$(document).on('click', '#saveMenuBtn', function (){ + let valueChk = true; + if(!$("#cat1Cd").val()){ + alert("대분류를 선택해주세요.") + valueChk = false; + } + if(!$("#cat2Cd").val()){ + alert("중분류를 선택해주세요.") + valueChk = false; + } + if(!$("#menuUrl").val()){ + alert("URL을 입력해주세요.") + valueChk = false; + } + if(valueChk && confirm("저장하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#menuEditForm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/menuMgt/saveMenuMgt", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + if(result!==""){ + alert("url: "+result+"로 저장되어있습니다.") + }else{ + // location.reload(); + alert("저장되었습니다.") + } + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) +$(document).on('click', '#deleteMenuBtn', function (){ + if(confirm("삭제 하시겠습니까?")){ + deleteMenu([{menuKey: Number($("#menuKey").val())}]) + } +}) +$(document).on('click', '#deleteCheckedBtn', function (){ + if(confirm("선택된 대상을 모두 삭제 하시겠습니까?")){ + const menuList = []; + $(".menuCheckBox:checked").each(function (idx, el){ + menuList.push({}); + const target = $(el); + menuList[idx].menuKey = Number(target.parents('tr').find('.menuKey').val()); + }) + deleteMenu(menuList) + } +}) +function getModalForm(menuMgt){ + $.ajax({ + url: '/menuMgt/menuEditModal', + data: menuMgt, + type: 'GET', + dataType:"html", + success: function(html){ + $("#menuEditModalContent").empty().append(html) + $("#menuEditModal").modal('show') + }, + error:function(){ + + } + }); +} + +function deleteMenu(menuList){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/menuMgt/deleteMenuMgt", + data : JSON.stringify(menuList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("삭제되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제를 실패하였습니다.") + contentFade("out"); + } + }) +} \ No newline at end of file diff --git a/src/main/resources/static/js/organMgt/organMgt.js b/src/main/resources/static/js/organMgt/organMgt.js new file mode 100644 index 0000000..82ddfe6 --- /dev/null +++ b/src/main/resources/static/js/organMgt/organMgt.js @@ -0,0 +1,141 @@ +let organList = []; +let selectedMiddleOrganCd = ""; + +$(function (){ + $.ajax({ + url: '/organMgt/selectOrganList', + type: 'GET', + dataType:"json", + success: function(data){ + organList = data; + setUsedOrganTr("OG001", "OGC002"); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#middleAddBtn', function (){ + addTr('middleTbody') +}) + +$(document).on('click', '#bottomAddBtn', function (){ + addTr('bottomTbody') +}) + +$(document).on('click', '.rowDeleteBtn', function (){ + const targetTr = $(this).parents('tr'); + const selector = targetTr.find("select"); + organList.forEach(function (organ, idx){ + if(organ.organCd === selector.val() //해당관서 + || organ.parentOrgan === selector.val()){ // 해당 지방청을 상위로 둔 관할 서 + organ.useState = "F"; + } + }) + targetTr.remove(); +}) + +$(document).on('change', '.organSelector', function () { + const selector = this; + const selectedItemCd = selector.value; + const tbodyId = $(this).parents('tbody')[0].id + organList.forEach(function (organ, idx){ + if(organ.organCd === selectedItemCd){ + switch (organ.useState){ + case "T": + selector[0].selected = true; + alert("다른 위치에 등록된 관서입니다.") + $(selector).find("[value='"+selectedItemCd+"']").remove() + break; + case "F": + for(var i=0; i0){ + activeTr[0].className = "middleTr"; + } + this.className = "middleTr activeTr" + $("#bottomTbody").empty(); + selectedMiddleOrganCd = $(this).find("select").val(); + setUsedOrganTr(selectedMiddleOrganCd, "OGC003") + $("#bottomBtnRow").show(); + $("#emptyTr").hide(); +}) +$(document).on('click', '#organSaveBtn', function (){ + contentFade("in"); + const saveList = []; + organList.forEach(function (organ) { + if(organ.useState==="T") + saveList.push(organ); + }); + $.ajax({ + type : 'POST', + url : "/organMgt/saveOrganConfig", + data : JSON.stringify(saveList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) +}) + +function addTr(tbody){ + let options = ''; + organList.forEach(function (organ) { + if(organ.useState==="F") + options+= '' + }); + if(options===''){ + alert("배정되지 않은 관서가 없습니다."); + }else{ + $('#'+tbody).append( + '' + + '' + + '' + + '' + ) + } +} + +function setUsedOrganTr(parentOrgan, organType){ + const target = organType==="OGC002"?$("#middleTbody"):$("#bottomTbody") + organList.forEach(function (organ){ + if(organ.useState === "T"){ + if(organ.parentOrgan===parentOrgan && organ.organType===organType){ + target.append( + '' + + '' + + '' + + '' + ) + } + } + }) +} \ No newline at end of file diff --git a/src/main/resources/static/js/publicBoard/board.js b/src/main/resources/static/js/publicBoard/board.js new file mode 100644 index 0000000..817eeb1 --- /dev/null +++ b/src/main/resources/static/js/publicBoard/board.js @@ -0,0 +1,19 @@ + +$(document).on('click', '#addBoardBtn', function (){ + getEditModal(null, "PLB002") +}) + +$(document).on('click', '.planTr', function (){ + $(".trChkBox").prop("checked", false); + $(this).find(".trChkBox").prop("checked", true); + getViewModal(Number($(this).find(".planKey").val()), "PLB002"); +}) + +$(document).on('click', '#saveBtn', function (){ + savePublicBoard("boardEditForm", "PLB002") +}) + +$(document).on('click', '#editBtn', function (){ + $("#viewModal").modal('hide') + getEditModal($("#viewModalPublicKey").val(), "PLB002") +}) \ No newline at end of file diff --git a/src/main/resources/static/js/publicBoard/notice.js b/src/main/resources/static/js/publicBoard/notice.js new file mode 100644 index 0000000..598c737 --- /dev/null +++ b/src/main/resources/static/js/publicBoard/notice.js @@ -0,0 +1,26 @@ + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) + +$(document).on('click', '#addNoticeBtn', function (){ + getEditModal(null, "PLB001") +}) + +$(document).on('click', '.noticeTr', function (){ + $(".trChkBox").prop("checked", false); + $(this).find(".trChkBox").prop("checked", true); + getViewModal(Number($(this).find(".publicKey").val()), "PLB001"); +}) + +$(document).on('click', '#saveBtn', function (){ + savePublicBoard("noticeEditForm", "PLB001") +}) + +$(document).on('click', '#editBtn', function (){ + $("#viewModal").modal('hide') + getEditModal($("#viewModalPublicKey").val(), "PLB001") +}) \ No newline at end of file diff --git a/src/main/resources/static/js/publicBoard/publicBoard.js b/src/main/resources/static/js/publicBoard/publicBoard.js new file mode 100644 index 0000000..3063723 --- /dev/null +++ b/src/main/resources/static/js/publicBoard/publicBoard.js @@ -0,0 +1,179 @@ +$(document).on('click', '#commentSaveBtn', function (){ + if(!$("#comment").val()) { + alert("댓글을 입력해주세요.") + }else{ + if (confirm("등록하시겠습니까?")) { + contentFade("in") + const formData = new FormData($("#commentForm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/publicBoard/saveComment", + processData: false, + contentType: false, + dataType:"html", + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(html) { + $("#commentDiv").append(html) + $("#comment").summernote('code', '') + const parentComment = $("#parentComment"); + if(parentComment.val()){ + parentComment.val(''); + $("#commentFormHome").append($("#commentForm")) + } + alert("저장되었습니다."); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +}) + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) + +$(document).on('click', '.childCommentBtn', function (){ + const childCommentDiv = $(this).parents(".commentRow").find(".childCommentDiv") + childCommentDiv.show(); + $("#parentComment").val($(this).parents(".commentRow").find(".commentKey").val()); + childCommentDiv.empty().append($("#commentForm")) +}) +$(document).on('click', '.deleteCommentBtn', function (){ + const commentRow = $(this).parents(".commentRow"); + const publicKey = Number(commentRow.find(".publicKey").val()); + const commentKey = Number(commentRow.find(".commentKey").val()); + $.ajax({ + type : 'POST', + data : JSON.stringify({publicKey: publicKey, commentKey: commentKey}), + url : "/publicBoard/deleteComment", + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + commentRow.remove(); + alert("삭제되었습니다."); + contentFade("out"); + }, + error : function(xhr, status) { + alert("삭제를 실패하였습니다.") + contentFade("out"); + } + }) +}) + +function getEditModal(publicKey, publicType){ + $.ajax({ + url: '/publicBoard/editModal', + data: {publicKey: publicKey, publicType: publicType}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#editContent").empty().append(html) + $("#content").summernote({ + lang:'ko-KR', + height: 350, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + setUploadDiv(); + $("#editModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getViewModal(publicKey, publicType){ + $.ajax({ + url: '/publicBoard/viewModal', + data: {publicKey: publicKey, publicType: publicType}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#viewContent").empty().append(html) + $("#comment").summernote({ + lang:'ko-KR', + height: 100, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + $("#viewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function savePublicBoard(formId, publicType){ + if(contentCheck(formId)){ + if(confirm("저장하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#"+formId)[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + $.ajax({ + type : 'POST', + data : formData, + url : "/publicBoard/saveContent", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#editModal").modal('hide'); + getViewModal(result, publicType); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + +function contentCheck(formId){ + let flag = true; + if(!$("#title").val()){ + alert("제목을 입력해주세요.") + flag = false; + } + if($("#publicType").val()==="PLB003"){ + if(!$("#tabStatus").val()){ + alert("분류를 선택해주세요.") + flag = false; + } + } + flag = fileCheck(flag, files); + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/publicBoard/qna.js b/src/main/resources/static/js/publicBoard/qna.js new file mode 100644 index 0000000..0d8f68b --- /dev/null +++ b/src/main/resources/static/js/publicBoard/qna.js @@ -0,0 +1,26 @@ + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) + +$(document).on('click', '#addQnaBtn', function (){ + getEditModal(null, "PLB004") +}) + +$(document).on('click', '.planTr', function (){ + $(".trChkBox").prop("checked", false); + $(this).find(".trChkBox").prop("checked", true); + getViewModal(Number($(this).find(".planKey").val()), "PLB004"); +}) + +$(document).on('click', '#saveBtn', function (){ + savePublicBoard("qnaEditForm", "PLB004") +}) + +$(document).on('click', '#editBtn', function (){ + $("#viewModal").modal('hide') + getEditModal($("#viewModalPublicKey").val(), "PLB004") +}) \ No newline at end of file diff --git a/src/main/resources/static/js/publicBoard/reference.js b/src/main/resources/static/js/publicBoard/reference.js new file mode 100644 index 0000000..ca54399 --- /dev/null +++ b/src/main/resources/static/js/publicBoard/reference.js @@ -0,0 +1,23 @@ + +$(document).on('click', '#addReferenceBtn', function (){ + getEditModal(null, "PLB003") +}) + +$(document).on('click', '.planTr', function (){ + $(".trChkBox").prop("checked", false); + $(this).find(".trChkBox").prop("checked", true); + getViewModal(Number($(this).find(".planKey").val()), "PLB003"); +}) + +$(document).on('click', '#saveBtn', function (){ + savePublicBoard("referenceEditForm", "PLB003") +}) + +$(document).on('click', '#editBtn', function (){ + $("#viewModal").modal('hide') + getEditModal($("#viewModalPublicKey").val(), "PLB003") +}) +$(document).on('click', '.referenceTab', function (){ + location.href = "/publicBoard/referencePage?tabStatus="+$(this).attr('data-tabcd') +}) + diff --git a/src/main/resources/static/js/translator/translator.js b/src/main/resources/static/js/translator/translator.js new file mode 100644 index 0000000..2988089 --- /dev/null +++ b/src/main/resources/static/js/translator/translator.js @@ -0,0 +1,432 @@ +let trCarrerList=[]; +let selectedIdx=0; + +$(document).on('click', '.userInfoTr', function (event){ + $("#selectedKey").val($(this).find(".trKey").val()) + $("#selectedVerNo").val($(this).find(".verNo").val()) + const x = event.clientX; + const y = event.clientY; + const dropdown = $(".dropdown-menu.show") + if(dropdown.length>0){ + dropdown[0].style.inset = "0px auto auto "+(x-event.currentTarget.getBoundingClientRect().x)+"px"; + } +}) + +$(document).on('click', '.translatorInfo', function (){ + document.getElementById('accessTab').classList.add('active'); + document.getElementById('approvalTab').classList.remove('active'); + const trKey = Number($("#selectedKey").val()); + const verNo = Number($("#selectedVerNo").val()); + const url = '/translator/translatorEditModal'; + revisionHistory(trKey,verNo,url); + var html=""; + html += ''; + html += ''; + $("#KeyValue").empty().html(html) +}) + +$(document).on('click', '#trView', function (){ + document.getElementById('accessTab').classList.add('active'); + document.getElementById('approvalTab').classList.remove('active'); + const trKey = (Number($(this).find(".trKey").val())); + const verNo = (Number($(this).find(".verNo").val())); + const url = '/translator/translatorEditModal'; + revisionHistory(trKey,verNo,url); + var html=""; + html += ''; + html += ''; + $("#KeyValue").empty().html(html); +}) + +$(document).on('click', '#updateBtn', function (){ + if($('#eOgdp1').val() == ''){ + alert("관서를 선택해주세요."); + $('#eOgdp1').focus(); + return false; + } + + if($('#trLang').val() == ''){ + alert("언어를 선택해주세요."); + $('#trLang').focus(); + return false; + } + + if($('#trEname').val() == ''){ + alert("성명을 입력해주세요."); + $('#trEname').focus(); + return false; + } + + if(confirm("수정하시겠습니까?")){ + document.getElementById("eOgdp1").disabled = false; + const url = '/translator/translatorEditModal'; + contentFade("in"); + const formData = new FormData($("#trInfoUpdate")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/translator/updateTranslatorInfo", + processData: false, + contentType: false, + success : function(data) { + alert("수정되었습니다."); + contentFade("out"); + revisionHistory(data.translatorKey,data.versionNo,url); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다."); + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '#saveBtn', function (){ + if($('#ogdp1').val() == ''){ + alert("관서를 선택해주세요."); + $('#ogdp1').focus(); + return false; + } + + if($('#lang').val() == ''){ + alert("언어를 선택해주세요."); + $('#lang').focus(); + return false; + } + + if($('#trName').val() == ''){ + alert("성명을 입력해주세요."); + $('#trName').focus(); + return false; + } + + if($('#dmlYn').val() == ''){ + alert("해촉여부를 선택해주세요."); + $('#dmlYn').focus(); + return false; + } + + if(confirm("저장하시겠습니까?")){ + document.getElementById("ogdp1").disabled = false; + contentFade("in"); + const formData = new FormData($("#translatorInsert")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/translator/insertTranslatorInfo", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다.") + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '.historyInfoTr', function (){ + $(this).find('.hisChk').prop('checked',true) + if($(this).find('.hisChk').prop('checked')){ + $('.hisChk').prop('checked',false); + $(this).find('.hisChk').prop('checked',true) + } + $.ajax({ + url: '/translator/HistoryView', + data: { + translatorKey: Number($(this).find(".trKey").val()), + versionNo : Number($(this).find(".verNo").val()) + }, + type: 'GET', + dataType:"json", + success: function(data){ + $("#ogdp1V").val(data.ogdp1); + $("#trLangV").val(data.trLang); + $("#trCareerV").val(data.trCareer); + $("#trNameV").val(data.trName); + $("#trSexV").val(data.trSex); + $("#trPhoneV").val(data.trPhone); + $("#trNnyV").val(data.trNny); + $("#trAgeV").val(data.trAge); + $("#trVisaV").val(data.trVisa); + $("#trEduV").val(data.trEdu); + $("#trCftV").val(data.trCft); + $("#aptDtV").val(data.aptDt); + $("#dmlYnV").val(data.dmlYn); + $("#remarkV").val(data.remark); + }, + error:function(){ + + } + }); +}) +$(document).ready( function() { + $("#aptDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $(".tcDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}); + +$(document).on('click', '#approvalTab', function (){ + const trKey = (Number($('.tapTrKey').val())); + const verNo = (Number($('.tapVerNo').val())); + const url = '/translator/revisionHistory'; + revisionHistory(trKey,verNo,url); + document.getElementById('accessTab').classList.remove('active'); + document.getElementById('approvalTab').classList.add('active'); +}) + +$(document).on('click', '#accessTab', function (){ + const trKey = (Number($('.tapTrKey').val())); + const verNo = (Number($('.tapVerNo').val())); + const url = '/translator/translatorEditModal'; + revisionHistory(trKey,verNo,url); + document.getElementById('approvalTab').classList.remove('active'); + document.getElementById('accessTab').classList.add('active'); +}) + +function revisionHistory(trKey,verNo,url){ + $.ajax({ + url: url, + data: { + translatorKey: trKey, + versionNo : verNo + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#configInfo").empty().append(html) + $("#translatorEditModal").modal('show'); + $("#viewAptDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + }, + error:function(){ + + } + }); +} + +$(document).on('change', '#trNny', function (){ + if($(this).val() == "NNY001"){ + $("#trVisa").attr("disabled",true); + }else{ + $("#trVisa").removeAttr("disabled"); + } +}); + +$(document).on('click', '#crrAddBtn', function (){ + const trKey = (Number($('#tcInsertKey').val())); + $('#insertCareer').append( + '
'+ + '
'+ + ''+ + '
'+ + ''+ + '
'+ + ''+ + '
'+ + ''+ + '
'+ + ''+ + '
'+ + ''+ + '
'+ + ''+ + '
'+ + ''+ + '
'+ + ''+ + '
'+ + '
' + ) + $(".tcDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + trCarrerList.push({translatorKey:trKey, hisGubun:"",tcDt:"",contents:"",remark:""}); +}) + +$(document).on('click', '.rowDeleteBtn', function (){ + selectedIdx = $(this).parents("#crrDiv").index()-1; + trCarrerList.splice(selectedIdx,1); + $(this).parents('#crrDiv').remove(); +}) + +$(document).on('change', '.crrInput', function (){ + selectedIdx = $(this).parents("#crrDiv").index()-1; + const target = trCarrerList[selectedIdx]; + switch (this.name){ + case "hisGubun": + target.hisGubun = this.value + break; + case "tcDt": + target.tcDt = this.value + break; + case "contents": + target.contents = this.value + break; + case "remark": + target.remark = this.value + break; + } +}) + +$(document).on('click', '.careerInfo', function (){ + const trKey = Number($("#selectedKey").val()); + showCareer(trKey); +}) + +function showCareer(trKey){ + $.ajax({ + url: '/translator/careerView', + data: { + translatorKey: trKey, + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#careerView").empty().append(html) + $("#translatorCareerModal").modal('show'); + }, + error:function(){ + + } + }); +} + + +$(document).on('click', '#crrInsertBtn', function (){ + const trKey = Number($("#tcmKey").val()); + $.ajax({ + url: '/translator/careerInsertPage', + data: { + translatorKey: trKey, + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#careerView").empty().append(html) + $("#translatorCareerModal").modal('show'); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#crrSaveBtn', function (){ + if(confirm("저장하시겠습니까?")){ + contentFade("in"); + $.ajax({ + type : 'POST', + data : JSON.stringify(trCarrerList), + url : "/translator/insertTranslatorCareer", + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + contentFade("out"); + alert("이력등록이 완료되었습니다."); + showCareer(data); + trCarrerList.length = 0; + }, + error : function(xhr, status) { + contentFade("out"); + alert("이력등록을 실패하였습니다"); + } + }) + } +}) + +function deleteCareerBtn(crrSeq,trKey){ + if(confirm("삭제하시겠습니까?")){ + $.ajax({ + type : 'POST', + url : "/translator/deleteCareer", + data : JSON.stringify({careerSeq:crrSeq, + translatorKey:trKey}), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("삭제 처리되었습니다."); + showCareer(data); + }, + error : function(xhr, status) { + alert("삭제 처리에 실패하였습니다"); + } + }) + } +} + +$(document).on('click', '.btn-close', function (){ + trCarrerList.length = 0; + location.reload(); +}) + +$(document).on('click', '#closeModalBtn', function (){ + location.reload(); +}) + +$(document).on('click', '#trDeleteBtn', function (){ + if(confirm("해임 하시겠습니까?")){ + contentFade("in"); + const trKey = Number($(".translatorKey").val()); + $.ajax({ + type : 'POST', + data : JSON.stringify(trKey), + url : "/translator/deleteTranslatorInfo", + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function() { + alert("해임되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("해임을 실패하였습니다."); + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '#goExcel', function (){ + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + $('input[name=excel]').val('Y'); + $('#searchFm').submit(); + $('input[name=excel]').val(''); + }else{ + false; + } +}) + +$(document).on('click', '#excelDown', function (){ + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + location.href='/translator/statisticsExcelDown'; + }else{ + false; + } +}) + + + + diff --git a/src/main/resources/static/js/user/info.js b/src/main/resources/static/js/user/info.js new file mode 100644 index 0000000..b9b0201 --- /dev/null +++ b/src/main/resources/static/js/user/info.js @@ -0,0 +1,200 @@ +let selectedList = []; +$(function (){ + $.ajax({ + type : 'GET', + url : "/myInfo/getDashBoardConfig", + dataType:"json", + success : function(data) { + selectedList = data; + }, + error : function(xhr, status) { + + } + }) +}) + +$(document).on('click', '.configTr', function (event){ + const target = event.target; + if(!(target.className === "moveTd" || $(target).parents(".moveTd").length>0)){ + const chkBox = $(this).find(".configChkBox")[0]; + chkBox.checked = !chkBox.checked; + } +}) +$(document).on('click', '#configAddBtn', function (){ + searchModalSubmit(1); + $("#menuModal").modal('show'); +}) +$(document).on('click', '#configDeleteBtn', function (){ + $.each($(".configChkBox:checked"), function (idx, chkBox){ + $(chkBox).parents(".configTr").remove(); + }) + const tempList = []; + $.each($(".configChkBox"), function (idx, chkBox){ + $.each(selectedList, function (idx, menu){ + if(menu.menuKey === Number($(chkBox).attr('data-menukey'))){ + tempList.push(menu); + } + }) + }) + selectedList = tempList; + orderNumSort(); +}) + +$(document).on('click', '.menuTr', function (){ + const checkBox = $(this).find(".menuCheckBox")[0] + checkBox.checked = !checkBox.checked; + if(checkBox.checked){ + selectedList.push({ + menuKey: Number(checkBox.value), + orderNum: selectedList.length+1, + cat1Cd: $(this).find(".cat1Cd").val(), + cat2Cd: $(this).find(".cat2Cd").val(), + cat3Cd: $(this).find(".cat3Cd").val(), + menuUrl: $(this).find(".menuUrl").val() + }); + }else{ + const tempList = []; + $.each(selectedList, function (idx, menu){ + if(menu.menuKey !== Number(checkBox.value)){ + menu.orderNum = idx+1; + tempList.push(menu); + } + }) + selectedList = tempList; + } +}) + +$(document).on('click', '#getMenuBtn', function (){ + $.ajax({ + type : 'POST', + url : "/myInfo/selectedMenuTable", + data : JSON.stringify(selectedList), + contentType: 'application/json', + dataType:"html", + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(html) { + $("#dashboardConfigTbody").empty().append($(html)[1].children[0].children); + $("#menuModal").modal("hide"); + }, + error : function(xhr, status) { + + } + }) +}) + +$(document).on('click', '#savePasswordBtn', function (){ + if(passwordCheck()){ + const formData = new FormData($("#modifyPasswordForm")[0]); + contentFade("in") + $.ajax({ + type : 'PUT', + data : formData, + url : "/info/passwordModify", + processData: false, + contentType: false, + success : function(result) { + if(result==="OK"){ + alert("저장되었습니다."); + $("#passwordModifyModal").find(".btn-close").click(); + }else if(result==="passwordNotMatch"){ + alert("현재 비밀번호가 맞지 않습니다."); + } + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) + } +}) +$(document).on('click', '.upBtn', function (){ + const targetTr = $(this).parents('tr'); + targetTr.prev().before(targetTr); + orderNumSort(); +}) +$(document).on('click', '.downBtn', function (){ + const targetTr = $(this).parents('tr'); + targetTr.next().after(targetTr); + orderNumSort(); +}) + +$(document).on('click', '#configSaveBtn', function (){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/myInfo/saveDashboardConfig", + data : JSON.stringify(selectedList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("저장되었습니다."); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) +}) + +function orderNumSort(){ + $.each($(".configTr"), function(idx, tr){ + $(tr).find(".orderNumInput").val(idx+1); + for(const menu of selectedList){ + if(Number($(tr).find(".configChkBox").attr("data-menukey"))===menu.menuKey){ + menu.orderNum = Number($(tr).find(".orderNumInput").val()); + } + } + }) + selectedList.sort(function(a,b){ + if (a.orderNum > b.orderNum) { + return 1; + } + if (a.orderNum < b.orderNum) { + return -1; + } + return 0; + }) +} +function setSelectedChkBox(){ + $.each(selectedList, function (idx, item){ + $("[value="+item.menuKey+"]").prop("checked", true); + }) +} + +function passwordCheck(){ + let returnFlag = true; + const password = $("#password"); + const modifyPassword =$("#modifyPassword"); + const passwordConfirm = $("#passwordConfirm"); + if(!password.val()){ + alert("비밀번호를 입력해주세요."); + returnFlag = false; + } + if(!modifyPassword.val()){ + alert("새 비밀번호를 입력해주세요."); + returnFlag = false; + } + if(!passwordConfirm.val()){ + alert("비밀번호 확인을 입력해주세요."); + returnFlag = false; + } + if(returnFlag){ + const passwordReg = /^(?=.*[a-zA-z])(?=.*[0-9])(?=.*[$`~!@$!%*#^?&\\(\\)\-_=+]).{8,16}$/; + if(!passwordReg.test(modifyPassword.val())){ + alert("비밀번호 조건이 맞지 않습니다.") + returnFlag = false; + }else{ + if(modifyPassword.val() !== passwordConfirm.val()){ + alert("비밀번호가 같지 않습니다."); + returnFlag = false; + } + } + } + return returnFlag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/userMgt/userMgt.js b/src/main/resources/static/js/userMgt/userMgt.js new file mode 100644 index 0000000..b05f376 --- /dev/null +++ b/src/main/resources/static/js/userMgt/userMgt.js @@ -0,0 +1,146 @@ + +$(document).on('click', '.userInfoTr', function (){ + if($('#userStatus').val() === 'USC003'){ + $.ajax({ + url: '/userMgt/userEditModal', + data: {userSeq: Number($(this).find(".userSeq").val())}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#configInfo").empty().append(html) + $("#userEditModal").modal('show'); + }, + error:function(){ + + } + }); + } +}) + +$(document).on('click', '#logTab', function (){ + location.href='/userMgt/userMgtPage?userStatus=USC002';  +}) + +$(document).on('click', '#contentTab', function (){ + location.href='/userMgt/userMgtPage?userStatus=USC003'; +}) + +$(document).ready( function() { + $('#chk-all').click( function() { + $('.userInfoCheckBox').prop('checked',this.checked); + }); +}); + +$(document).on('click', '#approvalBtn', function (){ + if(confirm("선택한 대상을 승인처리 하시겠습니까?")){ + const checkArr = []; + $('input:checkbox[name=userChk]:checked').each(function (idx, el){ + checkArr.push({}); + const target = $(el); + checkArr[idx].userSeq = Number(target.parents('tr').find('.userSeq').val()); + checkArr[idx].userStatus = "USC003" + }) + userApproval(checkArr); + } +}) + +function userApproval(checkArr){ + $.ajax({ + type : 'POST', + url : "/userMgt/userApproval", + data : JSON.stringify(checkArr), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert(data+"건이 승인 처리되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("승인처리에 실패하였습니다"); + } + }) +} + +$(document).on('click', '#companionBtn', function (){ + if(confirm("선택한 대상을 반려처리 하시겠습니까?")){ + const checkArr = []; + $('input:checkbox[name=userChk]:checked').each(function (idx, el){ + checkArr.push({}); + const target = $(el); + checkArr[idx].userSeq = Number(target.parents('tr').find('.userSeq').val()); + checkArr[idx].userStatus = "USC005" + }) + userCompanion(checkArr); + } +}) + +function userCompanion(checkArr){ + $.ajax({ + type : 'POST', + url : "/userMgt/userCompanion", + data : JSON.stringify(checkArr), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert(data+"건이 반려 처리되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("반려처리에 실패하였습니다"); + } + }) +} + +$(document).on('click', '#updateBtn', function (){ + if(confirm("저장하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#userInfoUpdate")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/userMgt/updateUserInfo", + processData: false, + contentType: false, + success : function() { + alert("저장되었습니다."); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '#deleteBtn', function (){ + if(confirm("삭제 하시겠습니까?")){ + console.log($("#userSeq").val()); + deleteUser([{userSeq: Number($("#userSeq").val())}]) + } +}) + +function deleteUser(userList){ + $.ajax({ + type : 'POST', + url : "/userMgt/userDelete", + data : JSON.stringify(userList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function() { + alert("삭제 처리되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제 처리에 실패하였습니다"); + } + }) +} + + \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.css b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.css new file mode 100644 index 0000000..8082158 --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.css @@ -0,0 +1,4124 @@ +/*! + * Bootstrap Grid v5.2.0 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #0d6efd; + --bs-link-hover-color: #0a58ca; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, +.gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, +.gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, +.gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, +.gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, +.gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, +.gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, +.gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, +.gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, +.gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, +.gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, +.gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, +.gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, +.gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, +.gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, +.gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, +.gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, +.gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, +.gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, +.gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, +.gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, +.gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, +.gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, +.gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, +.gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, +.gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, +.gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, +.gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, +.gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, +.gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, +.gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, +.gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, +.gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, +.gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, +.gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, +.gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, +.gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, +.gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, +.gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, +.gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, +.gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, +.gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, +.gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, +.gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, +.gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, +.gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, +.gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, +.gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, +.gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, +.gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, +.gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, +.gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, +.gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, +.gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, +.gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, +.gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, +.gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, +.gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, +.gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, +.gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, +.gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !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; +} + +.d-none { + display: none !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.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-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; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !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; +} + +.justify-content-evenly { + justify-content: space-evenly !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; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +@media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !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; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .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-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; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !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; + } + .justify-content-sm-evenly { + justify-content: space-evenly !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; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !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; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .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-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; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !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; + } + .justify-content-md-evenly { + justify-content: space-evenly !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; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !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; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .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-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; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !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; + } + .justify-content-lg-evenly { + justify-content: space-evenly !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; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !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; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .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-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; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !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; + } + .justify-content-xl-evenly { + justify-content: space-evenly !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; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !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; + } + .d-print-none { + display: none !important; + } +} + +/*# sourceMappingURL=bootstrap-grid.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.css.map b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.css.map new file mode 100644 index 0000000..22090c7 --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_root.scss","../../scss/vendor/_rfs.scss","bootstrap-grid.css","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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IGI;IAOI,0BAAA;EPwrDV;EO/rDM;IAOI,gCAAA;EP2rDV;EOlsDM;IAOI,yBAAA;EP8rDV;EOrsDM;IAOI,wBAAA;EPisDV;EOxsDM;IAOI,yBAAA;EPosDV;EO3sDM;IAOI,6BAAA;EPusDV;EO9sDM;IAOI,8BAAA;EP0sDV;EOjtDM;IAOI,wBAAA;EP6sDV;EOptDM;IAOI,+BAAA;EPgtDV;EOvtDM;IAOI,wBAAA;EPmtDV;EO1tDM;IAOI,yBAAA;EPstDV;EO7tDM;IAOI,8BAAA;EPytDV;EOhuDM;IAOI,iCAAA;EP4tDV;EOnuDM;IAOI,sCAAA;EP+tDV;EOtuDM;IAOI,yCAAA;EPkuDV;EOzuDM;IAOI,uBAAA;EPquDV;EO5uDM;IAOI,uBAAA;EPwuDV;EO/uDM;IAOI,yBAAA;EP2uDV;EOlvDM;IAOI,yBAAA;EP8uDV;EOrvDM;IAOI,0BAAA;EPivDV;EOxvDM;IAOI,4BAAA;EPovDV;EO3vDM;IAOI,kCAAA;EPuvDV;EO9vDM;IAOI,sCAAA;EP0vDV;EOjwDM;IAOI,oCAAA;EP6vDV;EOpwDM;IAOI,kCAAA;EPgwDV;EOvwDM;IAOI,yCAAA;EPmwDV;EO1wDM;IAOI,wCAAA;EPswDV;EO7wDM;IAOI,wCAAA;EPywDV;EOhxDM;IAOI,kCAAA;EP4wDV;EOnxDM;IAOI,gCAAA;EP+wDV;EOtxDM;IAOI,8BAAA;EPkxDV;EOzxDM;IAOI,gCAAA;EPqxDV;EO5xDM;IAOI,+BAAA;EPwxDV;EO/xDM;IAOI,oCAAA;EP2xDV;EOlyDM;IAOI,kCAAA;EP8xDV;EOryDM;IAOI,gCAAA;EPiyDV;EOxyDM;IAOI,uCAAA;EPoyDV;EO3yDM;IAOI,sCAAA;EPuyDV;EO9yDM;IAOI,iCAAA;EP0yDV;EOjzDM;IAOI,2BAAA;EP6yDV;EOpzDM;IAOI,iCAAA;EPgzDV;EOvzDM;IAOI,+BAAA;EPmzDV;EO1zDM;IAOI,6BAAA;EPszDV;EO7zDM;IAOI,+BAAA;EPyzDV;EOh0DM;IAOI,8BAAA;EP4zDV;EOn0DM;IAOI,oBAAA;EP+zDV;EOt0DM;IAOI,mBAAA;EPk0DV;EOz0DM;IAOI,mBAAA;EPq0DV;EO5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;EP8lEV;EOrmEM;IAOI,kCAAA;EPimEV;EOxmEM;IAOI,iCAAA;EPomEV;EO3mEM;IAOI,+BAAA;EPumEV;EO9mEM;IAOI,iCAAA;EP0mEV;EOjnEM;IAOI,+BAAA;EP6mEV;EOpnEM;IAOI,0BAAA;EPgnEV;EOvnEM;IAOI,gCAAA;EPmnEV;EO1nEM;IAOI,+BAAA;EPsnEV;EO7nEM;IAOI,6BAAA;EPynEV;EOhoEM;IAOI,+BAAA;EP4nEV;EOnoEM;IAOI,6BAAA;EP+nEV;AACF;AG1oEI;EIGI;IAOI,0BAAA;EPooEV;EO3oEM;IAOI,gCAAA;EPuoEV;EO9oEM;IAOI,yBAAA;EP0oEV;EOjpEM;IAOI,wBAAA;EP6oEV;EOppEM;IAOI,yBAAA;EPgpEV;EOvpEM;IAOI,6BAAA;EPmpEV;EO1pEM;IAOI,8BAAA;EPspEV;EO7pEM;IAOI,wBAAA;EPypEV;EOhqEM;IAOI,+BAAA;EP4pEV;EOnqEM;IAOI,wBAAA;EP+pEV;EOtqEM;IAOI,yBAAA;EPkqEV;EOzqEM;IAOI,8BAAA;EPqqEV;EO5qEM;IAOI,iCAAA;EPwqEV;EO/qEM;IAOI,sCAAA;EP2qEV;EOlrEM;IAOI,yCAAA;EP8qEV;EOrrEM;IAOI,uBAAA;EPirEV;EOxrEM;IAOI,uBAAA;EPorEV;EO3rEM;IAOI,yBAAA;EPurEV;EO9rEM;IAOI,yBAAA;EP0rEV;EOjsEM;IAOI,0BAAA;EP6rEV;EOpsEM;IAOI,4BAAA;EPgsEV;EOvsEM;IAOI,kCAAA;EPmsEV;EO1sEM;IAOI,sCAAA;EPssEV;EO7sEM;IAOI,oCAAA;EPysEV;EOhtEM;IAOI,kCAAA;EP4sEV;EOntEM;IAOI,yCAAA;EP+sEV;EOttEM;IAOI,wCAAA;EPktEV;EOztEM;IAOI,wCAAA;EPqtEV;EO5tEM;IAOI,kCAAA;EPwtEV;EO/tEM;IAOI,gCAAA;EP2tEV;EOluEM;IAOI,8BAAA;EP8tEV;EOruEM;IAOI,gCAAA;EPiuEV;EOxuEM;IAOI,+BAAA;EPouEV;EO3uEM;IAOI,oCAAA;EPuuEV;EO9uEM;IAOI,kCAAA;EP0uEV;EOjvEM;IAOI,gCAAA;EP6uEV;EOpvEM;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gFV;EO7gFM;IAOI,+BAAA;EPygFV;EOhhFM;IAOI,8BAAA;EP4gFV;EOnhFM;IAOI,4BAAA;EP+gFV;EOthFM;IAOI,8BAAA;EPkhFV;EOzhFM;IAOI,4BAAA;EPqhFV;EO5hFM;IAOI,2BAAA;EPwhFV;EO/hFM;IAOI,iCAAA;EP2hFV;EOliFM;IAOI,gCAAA;EP8hFV;EOriFM;IAOI,8BAAA;EPiiFV;EOxiFM;IAOI,gCAAA;EPoiFV;EO3iFM;IAOI,8BAAA;EPuiFV;EO9iFM;IAOI,4BAAA;EP0iFV;EOjjFM;IAOI,kCAAA;EP6iFV;EOpjFM;IAOI,iCAAA;EPgjFV;EOvjFM;IAOI,+BAAA;EPmjFV;EO1jFM;IAOI,iCAAA;EPsjFV;EO7jFM;IAOI,+BAAA;EPyjFV;EOhkFM;IAOI,0BAAA;EP4jFV;EOnkFM;IAOI,gCAAA;EP+jFV;EOtkFM;IAOI,+BAAA;EPkkFV;EOzkFM;IAOI,6BAAA;EPqkFV;EO5kFM;IAOI,+BAAA;EPwkFV;EO/kFM;IAOI,6BAAA;EP2kFV;AACF;AGtlFI;EIGI;IAOI,0BAAA;EPglFV;EOvlFM;IAOI,gCAAA;EPmlFV;EO1lFM;IAOI,yBAAA;EPslFV;EO7lFM;IAOI,wBAAA;EPylFV;EOhmFM;IAOI,yBAAA;EP4lFV;EOnmFM;IAOI,6BAAA;EP+lFV;EOtmFM;IAOI,8BAAA;EPkmFV;EOzmFM;IAOI,wBAAA;EPqmFV;EO5mFM;IAOI,+BAAA;EPwmFV;EO/mFM;IAOI,wBAAA;EP2mFV;EOlnFM;IAOI,yBAAA;EP8mFV;EOrnFM;IAOI,8BAAA;EPinFV;EOxnFM;IAOI,iCAAA;EPonFV;EO3nFM;IAOI,sCAAA;EPunFV;EO9nFM;IAOI,yCAAA;EP0nFV;EOjoFM;IAOI,uBAAA;EP6nFV;EOpoFM;IAOI,uBAAA;EPgoFV;EOvoFM;IAOI,yBAAA;EPmoFV;EO1oFM;IAOI,yBAAA;EPsoFV;EO7oFM;IAOI,0BAAA;EPyoFV;EOhpFM;IAOI,4BAAA;EP4oFV;EOnpFM;IAOI,kCAAA;EP+oFV;EOtpFM;IAOI,sCAAA;EPkpFV;EOzpFM;IAOI,oCAAA;EPqpFV;EO5pFM;IAOI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AA;EPgkGV;EOvkGM;IAOI,sCAAA;EPmkGV;EO1kGM;IAOI,yCAAA;EPskGV;EO7kGM;IAOI,uBAAA;EPykGV;EOhlGM;IAOI,uBAAA;EP4kGV;EOnlGM;IAOI,yBAAA;EP+kGV;EOtlGM;IAOI,yBAAA;EPklGV;EOzlGM;IAOI,0BAAA;EPqlGV;EO5lGM;IAOI,4BAAA;EPwlGV;EO/lGM;IAOI,kCAAA;EP2lGV;EOlmGM;IAOI,sCAAA;EP8lGV;EOrmGM;IAOI,oCAAA;EPimGV;EOxmGM;IAOI,kCAAA;EPomGV;EO3mGM;IAOI,yCAAA;EPumGV;EO9mGM;IAOI,wCAAA;EP0mGV;EOjnGM;IAOI,wCAAA;EP6mGV;EOpnGM;IAOI,kCAAA;EPgnGV;EOvnGM;IAOI,gCAAA;EPmnGV;EO1nGM;IAOI,8BAAA;EPsnGV;EO7nGM;IAOI,gCAAA;EPynGV;EOhoGM;IAOI,+BAAA;EP4nGV;EOnoGM;IAOI,oCAAA;EP+nGV;EOtoGM;IAOI,kCAAA;EPkoGV;EOzoGM;IAOI,gCAAA;EPqoGV;EO5oGM;IAOI,uCAAA;EPwoGV;EO/oGM;IAOI,sCAAA;EP2oGV;EOlpGM;IAOI,iCAAA;EP8oGV;EOrpGM;IAOI,2BAAA;EPipGV;EOxpGM;IAOI,iCAAA;EPopGV;EO3pGM;IAOI,+BAAA;EPupGV;EO9pGM;IAOI,6BAAA;EP0pGV;EOjqGM;IAOI,+BAAA;EP6pGV;EOpqGM;IAOI,8BAAA;EPgqGV;EOvqGM;IAOI,oBAAA;EPmqGV;EO1qGM;IAOI,mBAAA;EPsqGV;EO7qGM;IAOI,mBAAA;EPyqGV;EOhrGM;IAOI,mBAAA;EP4qGV;EOnrGM;IAOI,mBAAA;EP+qGV;EOtrGM;IAOI,mBAAA;EPkrGV;EOzrGM;IAOI,mBAAA;EPqrGV;EO5rGM;IAOI,mBAAA;EPwrGV;EO/rGM;IAOI,oBAAA;EP2rGV;EOlsGM;IAOI,0BAAA;EP8rGV;EOrsGM;IAOI,yBAAA;EPisGV;EOxsGM;IAOI,uBAAA;EPosGV;EO3sGM;IAOI,yBAAA;EPusGV;EO9sGM;IAOI,uBAAA;EP0sGV;EOjtGM;IAOI,uBAAA;EP6sGV;EOptGM;IAOI,0BA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Pw+GV;EO/+GM;IAOI,gCAAA;EP2+GV;EOl/GM;IAOI,yBAAA;EP8+GV;EOr/GM;IAOI,wBAAA;EPi/GV;EOx/GM;IAOI,yBAAA;EPo/GV;EO3/GM;IAOI,6BAAA;EPu/GV;EO9/GM;IAOI,8BAAA;EP0/GV;EOjgHM;IAOI,wBAAA;EP6/GV;EOpgHM;IAOI,+BAAA;EPggHV;EOvgHM;IAOI,wBAAA;EPmgHV;EO1gHM;IAOI,yBAAA;EPsgHV;EO7gHM;IAOI,8BAAA;EPygHV;EOhhHM;IAOI,iCAAA;EP4gHV;EOnhHM;IAOI,sCAAA;EP+gHV;EOthHM;IAOI,yCAAA;EPkhHV;EOzhHM;IAOI,uBAAA;EPqhHV;EO5hHM;IAOI,uBAAA;EPwhHV;EO/hHM;IAOI,yBAAA;EP2hHV;EOliHM;IAOI,yBAAA;EP8hHV;EOriHM;IAOI,0BAAA;EPiiHV;EOxiHM;IAOI,4BAAA;EPoiHV;EO3iHM;IAOI,kCAAA;EPuiHV;EO9iHM;IAOI,sCAAA;EP0iHV;EOjjHM;IAOI,oCAAA;EP6iHV;EOpjHM;IAOI,kCAAA;EPgjHV;EOvjHM;IAOI,yCAAA;EPmjHV;EO1jHM;IAOI,wCAAA;EPsjHV;EO7jHM;IAOI,wCAAA;EPyjHV;EOhkHM;IAOI,kCAAA;EP4jHV;EOnkHM;IAOI,gCAAA;EP+jHV;EOtkHM;IAOI,8BAAA;EPkkHV;EOzkHM;IAOI,gCAAA;EPqkHV;EO5kHM;IAOI,+BAAA;EPwkHV;EO/kHM;IAOI,oCAAA;EP2kHV;EOllHM;IAOI,kCAAA;EP8kHV;EOrlHM;IAOI,gCAAA;EPilHV;EOxlHM;IAOI,uCAAA;EPolHV;EO3lHM;IAOI,sCAAA;EPulHV;EO9lHM;IAOI,iCAAA;EP0lHV;EOjmHM;IAOI,2BAAA;EP6lHV;EOpmHM;IAOI,iCAAA;EPgmHV;EOvmHM;IAOI,+BAAA;EPmmHV;EO1mHM;IAOI,6BAAA;EPsmHV;EO7mHM;IAOI,+BAAA;EPymHV;EOhnHM;IAOI,8BAAA;EP4mHV;EOnnHM;IAOI,oBAAA;EP+mHV;EOtnHM;IAOI,mBAAA;EPknHV;EOznHM;IAOI,mBAAA;EPqnHV;EO5nHM;IAOI,mBAAA;E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","file":"bootstrap-grid.css","sourcesContent":["@mixin bsBanner($file, $suffix:\"\") {\n /*!\n * Bootstrap #{$file} v5.2.0 (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\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{$font-family-base};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n --#{$prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n --#{$prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-hover-color: #{$link-hover-color};\n\n --#{$prefix}code-color: #{$code-color};\n\n --#{$prefix}highlight-bg: #{$mark-bg};\n}\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start 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 values 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// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\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-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\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-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 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// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\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-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n }\n @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + ' ' + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + ' ' + $value;\n }\n\n @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\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($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluidVal: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluidVal {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\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 @include _rfs-media-query-rule {\n #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","/*!\n * Bootstrap Grid v5.2.0 (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:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-2xl: 2rem;\n --bs-border-radius-pill: 50rem;\n --bs-link-color: #0d6efd;\n --bs-link-hover-color: #0a58ca;\n --bs-code-color: #d63384;\n --bs-highlight-bg: #fff3cd;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-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","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-right: auto;\n margin-left: auto;\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, xxl: 1400px)\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, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($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, xxl: 1400px))\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.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `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(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .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, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\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 $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $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($next, $breakpoints) {\n @content;\n }\n }\n}\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// scss-docs-start gray-color-variables\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// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\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) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue: #0d6efd !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #d63384 !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #198754 !default;\n$teal: #20c997 !default;\n$cyan: #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\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 \"black\": $black,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio: 4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark: $black !default;\n$color-contrast-light: $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n \"blue-100\": $blue-100,\n \"blue-200\": $blue-200,\n \"blue-300\": $blue-300,\n \"blue-400\": $blue-400,\n \"blue-500\": $blue-500,\n \"blue-600\": $blue-600,\n \"blue-700\": $blue-700,\n \"blue-800\": $blue-800,\n \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n \"indigo-100\": $indigo-100,\n \"indigo-200\": $indigo-200,\n \"indigo-300\": $indigo-300,\n \"indigo-400\": $indigo-400,\n \"indigo-500\": $indigo-500,\n \"indigo-600\": $indigo-600,\n \"indigo-700\": $indigo-700,\n \"indigo-800\": $indigo-800,\n \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n \"purple-100\": $purple-100,\n \"purple-200\": $purple-200,\n \"purple-300\": $purple-300,\n \"purple-400\": $purple-400,\n \"purple-500\": $purple-500,\n \"purple-600\": $purple-600,\n \"purple-700\": $purple-700,\n \"purple-800\": $purple-800,\n \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n \"pink-100\": $pink-100,\n \"pink-200\": $pink-200,\n \"pink-300\": $pink-300,\n \"pink-400\": $pink-400,\n \"pink-500\": $pink-500,\n \"pink-600\": $pink-600,\n \"pink-700\": $pink-700,\n \"pink-800\": $pink-800,\n \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n \"red-100\": $red-100,\n \"red-200\": $red-200,\n \"red-300\": $red-300,\n \"red-400\": $red-400,\n \"red-500\": $red-500,\n \"red-600\": $red-600,\n \"red-700\": $red-700,\n \"red-800\": $red-800,\n \"red-900\": $red-900\n) !default;\n\n$oranges: (\n \"orange-100\": $orange-100,\n \"orange-200\": $orange-200,\n \"orange-300\": $orange-300,\n \"orange-400\": $orange-400,\n \"orange-500\": $orange-500,\n \"orange-600\": $orange-600,\n \"orange-700\": $orange-700,\n \"orange-800\": $orange-800,\n \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n \"yellow-100\": $yellow-100,\n \"yellow-200\": $yellow-200,\n \"yellow-300\": $yellow-300,\n \"yellow-400\": $yellow-400,\n \"yellow-500\": $yellow-500,\n \"yellow-600\": $yellow-600,\n \"yellow-700\": $yellow-700,\n \"yellow-800\": $yellow-800,\n \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n \"green-100\": $green-100,\n \"green-200\": $green-200,\n \"green-300\": $green-300,\n \"green-400\": $green-400,\n \"green-500\": $green-500,\n \"green-600\": $green-600,\n \"green-700\": $green-700,\n \"green-800\": $green-800,\n \"green-900\": $green-900\n) !default;\n\n$teals: (\n \"teal-100\": $teal-100,\n \"teal-200\": $teal-200,\n \"teal-300\": $teal-300,\n \"teal-400\": $teal-400,\n \"teal-500\": $teal-500,\n \"teal-600\": $teal-600,\n \"teal-700\": $teal-700,\n \"teal-800\": $teal-800,\n \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n \"cyan-100\": $cyan-100,\n \"cyan-200\": $cyan-200,\n \"cyan-300\": $cyan-300,\n \"cyan-400\": $cyan-400,\n \"cyan-500\": $cyan-500,\n \"cyan-600\": $cyan-600,\n \"cyan-700\": $cyan-700,\n \"cyan-800\": $cyan-800,\n \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\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-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\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) !default;\n// scss-docs-end theme-colors-map\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// 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-reduced-motion: true !default;\n$enable-smooth-scroll: true !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: false !default;\n$enable-button-pointers: true !default;\n$enable-rfs: true !default;\n$enable-validation-icons: true !default;\n$enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities: true !default;\n\n// Prefix for :root CSS variables\n\n$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix: $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\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// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n$body-text-align: null !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: $primary !default;\n$link-decoration: underline !default;\n$link-shade-percentage: 20% !default;\n$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration: null !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !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// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px,\n xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\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// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px,\n xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\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: 1.5rem !default;\n$grid-row-columns: 6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n\n$border-style: solid !default;\n$border-color: $gray-300 !default;\n$border-color-translucent: rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius: .375rem !default;\n$border-radius-sm: .25rem !default;\n$border-radius-lg: .5rem !default;\n$border-radius-xl: 1rem !default;\n$border-radius-2xl: 2rem !default;\n$border-radius-pill: 50rem !default;\n// scss-docs-end border-radius-variables\n\n// scss-docs-start box-shadow-variables\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color: $white !default;\n$component-active-bg: $primary !default;\n\n// scss-docs-start caret-variables\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"1x1\": 100%,\n \"4x3\": calc(3 / 4 * 100%),\n \"16x9\": calc(9 / 16 * 100%),\n \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, 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// stylelint-enable value-keyword-case\n$font-family-base: var(--#{$prefix}font-sans-serif) !default;\n$font-family-code: var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root: null !default;\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm: $font-size-base * .875 !default;\n$font-size-lg: $font-size-base * 1.25 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !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// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n 1: $h1-font-size,\n 2: $h2-font-size,\n 3: $h3-font-size,\n 4: $h4-font-size,\n 5: $h5-font-size,\n 6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n 1: 5rem,\n 2: 4.5rem,\n 3: 4rem,\n 4: 3.5rem,\n 5: 3rem,\n 6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style: null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\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$sub-sup-font-size: .75em !default;\n\n$text-muted: $gray-600 !default;\n\n$initialism-font-size: $small-font-size !default;\n\n$blockquote-margin-y: $spacer !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n$blockquote-footer-color: $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y: $spacer !default;\n$hr-color: inherit !default;\n\n// fusv-disable\n$hr-bg-color: null !default; // Deprecated in v5.2.0\n$hr-height: null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color: null !default; // Allows for inherited colors\n$hr-border-width: $border-width !default;\n$hr-opacity: .25 !default;\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-padding: .1875em !default;\n$mark-bg: $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y: .5rem !default;\n$table-cell-padding-x: .5rem !default;\n$table-cell-padding-y-sm: .25rem !default;\n$table-cell-padding-x-sm: .25rem !default;\n\n$table-cell-vertical-align: top !default;\n\n$table-color: var(--#{$prefix}body-color) !default;\n$table-bg: transparent !default;\n$table-accent-bg: transparent !default;\n\n$table-th-font-weight: null !default;\n\n$table-striped-color: $table-color !default;\n$table-striped-bg-factor: .05 !default;\n$table-striped-bg: rgba($black, $table-striped-bg-factor) !default;\n\n$table-active-color: $table-color !default;\n$table-active-bg-factor: .1 !default;\n$table-active-bg: rgba($black, $table-active-bg-factor) !default;\n\n$table-hover-color: $table-color !default;\n$table-hover-bg-factor: .075 !default;\n$table-hover-bg: rgba($black, $table-hover-bg-factor) !default;\n\n$table-border-factor: .1 !default;\n$table-border-width: $border-width !default;\n$table-border-color: var(--#{$prefix}border-color) !default;\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-scale: -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n \"primary\": shift-color($primary, $table-bg-scale),\n \"secondary\": shift-color($secondary, $table-bg-scale),\n \"success\": shift-color($success, $table-bg-scale),\n \"info\": shift-color($info, $table-bg-scale),\n \"warning\": shift-color($warning, $table-bg-scale),\n \"danger\": shift-color($danger, $table-bg-scale),\n \"light\": $light,\n \"dark\": $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\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: .25rem !default;\n$input-btn-focus-color-opacity: .25 !default;\n$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default;\n$input-btn-focus-blur: 0 !default;\n$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $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\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\n$input-btn-border-width: $border-width !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\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\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\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-color: var(--#{$prefix}link-color) !default;\n$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color: $gray-600 !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n$btn-border-radius-lg: $border-radius-lg !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$btn-hover-bg-shade-amount: 15% !default;\n$btn-hover-bg-tint-amount: 15% !default;\n$btn-hover-border-shade-amount: 20% !default;\n$btn-hover-border-tint-amount: 10% !default;\n$btn-active-bg-shade-amount: 20% !default;\n$btn-active-bg-tint-amount: 20% !default;\n$btn-active-border-shade-amount: 25% !default;\n$btn-active-border-tint-amount: 10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top: .25rem !default;\n$form-text-font-size: $small-font-size !default;\n$form-text-font-style: null !default;\n$form-text-font-weight: null !default;\n$form-text-color: $text-muted !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom: .5rem !default;\n$form-label-font-size: null !default;\n$form-label-font-style: null !default;\n$form-label-font-weight: null !default;\n$form-label-color: null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\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\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\n$input-bg: $body-bg !default;\n$input-disabled-color: null !default;\n$input-disabled-bg: $gray-200 !default;\n$input-disabled-border-color: null !default;\n\n$input-color: $body-color !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: $box-shadow-inset !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-sm: $border-radius-sm !default;\n$input-border-radius-lg: $border-radius-lg !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: tint-color($component-active-bg, 50%) !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 * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height * 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-color-width: 3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width: 1em !default;\n$form-check-min-height: $font-size-base * $line-height-base !default;\n$form-check-padding-start: $form-check-input-width + .5em !default;\n$form-check-margin-bottom: .125rem !default;\n$form-check-label-color: null !default;\n$form-check-label-cursor: null !default;\n$form-check-transition: null !default;\n\n$form-check-input-active-filter: brightness(90%) !default;\n\n$form-check-input-bg: $input-bg !default;\n$form-check-input-border: 1px solid rgba($black, .25) !default;\n$form-check-input-border-radius: .25em !default;\n$form-check-radio-border-radius: 50% !default;\n$form-check-input-focus-border: $input-focus-border-color !default;\n$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$form-check-input-checked-color: $component-active-color !default;\n$form-check-input-checked-bg-color: $component-active-bg !default;\n$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-check-radio-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-indeterminate-color: $component-active-color !default;\n$form-check-input-indeterminate-bg-color: $component-active-bg !default;\n$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-disabled-opacity: .5 !default;\n$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end: 1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color: rgba($black, .25) !default;\n$form-switch-width: 2em !default;\n$form-switch-padding-start: $form-switch-width + .5em !default;\n$form-switch-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-border-radius: $form-switch-width !default;\n$form-switch-transition: background-position .15s ease-in-out !default;\n\n$form-switch-focus-color: $input-focus-border-color !default;\n$form-switch-focus-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-switch-checked-color: $component-active-color !default;\n$form-switch-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y: $input-padding-y !default;\n$input-group-addon-padding-x: $input-padding-x !default;\n$input-group-addon-font-weight: $input-font-weight !default;\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// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y: $input-padding-y !default;\n$form-select-padding-x: $input-padding-x !default;\n$form-select-font-family: $input-font-family !default;\n$form-select-font-size: $input-font-size !default;\n$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight: $input-font-weight !default;\n$form-select-line-height: $input-line-height !default;\n$form-select-color: $input-color !default;\n$form-select-bg: $input-bg !default;\n$form-select-disabled-color: null !default;\n$form-select-disabled-bg: $gray-200 !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position: right $form-select-padding-x center !default;\n$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color: $gray-800 !default;\n$form-select-indicator: url(\"data:image/svg+xml,\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width: $input-border-width !default;\n$form-select-border-color: $input-border-color !default;\n$form-select-border-radius: $input-border-radius !default;\n$form-select-box-shadow: $box-shadow-inset !default;\n\n$form-select-focus-border-color: $input-focus-border-color !default;\n$form-select-focus-width: $input-focus-width !default;\n$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm: $input-padding-y-sm !default;\n$form-select-padding-x-sm: $input-padding-x-sm !default;\n$form-select-font-size-sm: $input-font-size-sm !default;\n$form-select-border-radius-sm: $input-border-radius-sm !default;\n\n$form-select-padding-y-lg: $input-padding-y-lg !default;\n$form-select-padding-x-lg: $input-padding-x-lg !default;\n$form-select-font-size-lg: $input-font-size-lg !default;\n$form-select-border-radius-lg: $input-border-radius-lg !default;\n\n$form-select-transition: $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width: 100% !default;\n$form-range-track-height: .5rem !default;\n$form-range-track-cursor: pointer !default;\n$form-range-track-bg: $gray-300 !default;\n$form-range-track-border-radius: 1rem !default;\n$form-range-track-box-shadow: $box-shadow-inset !default;\n\n$form-range-thumb-width: 1rem !default;\n$form-range-thumb-height: $form-range-thumb-width !default;\n$form-range-thumb-bg: $component-active-bg !default;\n$form-range-thumb-border: 0 !default;\n$form-range-thumb-border-radius: 1rem !default;\n$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg: $gray-500 !default;\n$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color: $input-color !default;\n$form-file-button-bg: $input-group-addon-bg !default;\n$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height: add(3.5rem, $input-height-border) !default;\n$form-floating-line-height: 1.25 !default;\n$form-floating-padding-x: $input-padding-x !default;\n$form-floating-padding-y: 1rem !default;\n$form-floating-input-padding-t: 1.625rem !default;\n$form-floating-input-padding-b: .625rem !default;\n$form-floating-label-opacity: .65 !default;\n$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $form-text-font-size !default;\n$form-feedback-font-style: $form-text-font-style !default;\n$form-feedback-valid-color: $success !default;\n$form-feedback-invalid-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,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\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) !default;\n// scss-docs-end form-validation-states\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// scss-docs-start zindex-stack\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-offcanvas-backdrop: 1040 !default;\n$zindex-offcanvas: 1045 !default;\n$zindex-modal-backdrop: 1050 !default;\n$zindex-modal: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-font-size: null !default;\n$nav-link-font-weight: null !default;\n$nav-link-color: var(--#{$prefix}link-color) !default;\n$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !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// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: null !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$navbar-brand-margin-end: 1rem !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$navbar-toggler-focus-width: $btn-focus-width !default;\n$navbar-toggler-transition: box-shadow .15s ease-in-out !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-theme-variables\n$navbar-dark-color: rgba($white, .55) !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,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .55) !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,\") !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// scss-docs-end navbar-theme-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\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: var(--#{$prefix}border-color-translucent) !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: $dropdown-border-color !default;\n$dropdown-divider-margin-y: $spacer * .5 !default;\n$dropdown-box-shadow: $box-shadow !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !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: $spacer * .25 !default;\n$dropdown-item-padding-x: $spacer !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding-x: $dropdown-item-padding-x !default;\n$dropdown-header-padding-y: $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color: $gray-300 !default;\n$dropdown-dark-bg: $gray-800 !default;\n$dropdown-dark-border-color: $dropdown-border-color !default;\n$dropdown-dark-divider-bg: $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow: null !default;\n$dropdown-dark-link-color: $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color: $white !default;\n$dropdown-dark-link-hover-bg: rgba($white, .15) !default;\n$dropdown-dark-link-active-color: $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color: $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y: .375rem !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\n$pagination-font-size: $font-size-base !default;\n\n$pagination-color: var(--#{$prefix}link-color) !default;\n$pagination-bg: $white !default;\n$pagination-border-radius: $border-radius !default;\n$pagination-border-width: $border-width !default;\n$pagination-margin-start: ($pagination-border-width * -1) !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg: $gray-200 !default;\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: var(--#{$prefix}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-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$pagination-border-radius-sm: $border-radius-sm !default;\n$pagination-border-radius-lg: $border-radius-lg !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max: .5 !default;\n$placeholder-opacity-min: .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y: $spacer !default;\n$card-spacer-x: $spacer !default;\n$card-title-spacer-y: $spacer * .5 !default;\n$card-border-width: $border-width !default;\n$card-border-color: var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius: $border-radius !default;\n$card-box-shadow: null !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y: $card-spacer-y * .5 !default;\n$card-cap-padding-x: $card-spacer-x !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$card-img-overlay-padding: $spacer !default;\n$card-group-margin: $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y: 1rem !default;\n$accordion-padding-x: 1.25rem !default;\n$accordion-color: var(--#{$prefix}body-color) !default;\n$accordion-bg: $body-bg !default;\n$accordion-border-width: $border-width !default;\n$accordion-border-color: var(--#{$prefix}border-color) !default;\n$accordion-border-radius: $border-radius !default;\n$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y: $accordion-padding-y !default;\n$accordion-body-padding-x: $accordion-padding-x !default;\n\n$accordion-button-padding-y: $accordion-padding-y !default;\n$accordion-button-padding-x: $accordion-padding-x !default;\n$accordion-button-color: $accordion-color !default;\n$accordion-button-bg: var(--#{$prefix}accordion-bg) !default;\n$accordion-transition: $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default;\n$accordion-button-active-color: shade-color($primary, 10%) !default;\n\n$accordion-button-focus-border-color: $input-focus-border-color !default;\n$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;\n\n$accordion-icon-width: 1.25rem !default;\n$accordion-icon-color: $accordion-button-color !default;\n$accordion-icon-active-color: $accordion-button-active-color !default;\n$accordion-icon-transition: transform .2s ease-in-out !default;\n$accordion-icon-transform: rotate(-180deg) !default;\n\n$accordion-button-icon: url(\"data:image/svg+xml,\") !default;\n$accordion-button-active-icon: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\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: $spacer * .25 !default;\n$tooltip-padding-x: $spacer * .5 !default;\n$tooltip-margin: null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n// fusv-disable\n$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\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: null !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\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: var(--#{$prefix}border-color-translucent) !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: $box-shadow !default;\n\n$popover-header-font-size: $font-size-base !default;\n$popover-header-bg: shade-color($popover-bg, 6%) !default;\n$popover-header-color: var(--#{$prefix}heading-color) !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: $spacer !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $spacer !default;\n$popover-body-padding-x: $spacer !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color: $popover-bg !default;\n$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .5rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: $border-width !default;\n$toast-border-color: var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius: $border-radius !default;\n$toast-box-shadow: $box-shadow !default;\n$toast-spacing: $container-padding-x !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba($black, .05) !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size: .75em !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .35em !default;\n$badge-padding-x: .65em !default;\n$badge-border-radius: $border-radius !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding: $spacer !default;\n\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: var(--#{$prefix}border-color-translucent) !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: $box-shadow-sm !default;\n$modal-content-box-shadow-sm-up: $box-shadow !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n\n$modal-header-border-color: var(--#{$prefix}border-color) !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-header-padding-y: $modal-inner-padding !default;\n$modal-header-padding-x: $modal-inner-padding !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg: null !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n\n$modal-sm: 300px !default;\n$modal-md: 500px !default;\n$modal-lg: 800px !default;\n$modal-xl: 1140px !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// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y: $spacer !default;\n$alert-padding-x: $spacer !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$alert-bg-scale: -80% !default;\n$alert-border-scale: -70% !default;\n$alert-color-scale: 40% !default;\n$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n\n// Progress bars\n\n// scss-docs-start progress-variables\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: $box-shadow-inset !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: $primary !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color: $gray-900 !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: $spacer * .5 !default;\n$list-group-item-padding-x: $spacer !default;\n$list-group-item-bg-scale: -80% !default;\n$list-group-item-color-scale: 40% !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// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: $box-shadow-sm !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size: $small-font-size !default;\n$figure-caption-color: $gray-600 !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size: null !default;\n$breadcrumb-padding-y: 0 !default;\n$breadcrumb-padding-x: 0 !default;\n$breadcrumb-item-padding-x: .5rem !default;\n$breadcrumb-margin-bottom: 1rem !default;\n$breadcrumb-bg: null !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n$breadcrumb-divider-flipped: $breadcrumb-divider !default;\n$breadcrumb-border-radius: null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\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-opacity: .5 !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-active-opacity: 1 !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n$carousel-caption-padding-y: 1.25rem !default;\n$carousel-caption-spacer: 1.25rem !default;\n\n$carousel-control-icon-width: 2rem !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !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$carousel-dark-indicator-active-bg: $black !default;\n$carousel-dark-caption-color: $black !default;\n$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;\n// scss-docs-end carousel-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width: 1em !default;\n$btn-close-height: $btn-close-width !default;\n$btn-close-padding-x: .25em !default;\n$btn-close-padding-y: $btn-close-padding-x !default;\n$btn-close-color: $black !default;\n$btn-close-bg: url(\"data:image/svg+xml,\") !default;\n$btn-close-focus-shadow: $input-btn-focus-box-shadow !default;\n$btn-close-opacity: .5 !default;\n$btn-close-hover-opacity: .75 !default;\n$btn-close-focus-opacity: 1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y: $modal-inner-padding !default;\n$offcanvas-padding-x: $modal-inner-padding !default;\n$offcanvas-horizontal-width: 400px !default;\n$offcanvas-vertical-height: 30vh !default;\n$offcanvas-transition-duration: .3s !default;\n$offcanvas-border-color: $modal-content-border-color !default;\n$offcanvas-border-width: $modal-content-border-width !default;\n$offcanvas-title-line-height: $modal-title-line-height !default;\n$offcanvas-bg-color: $modal-content-bg !default;\n$offcanvas-color: $modal-content-color !default;\n$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg: $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size: $small-font-size !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .1875rem !default;\n$kbd-padding-x: .375rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: var(--#{$prefix}body-bg) !default;\n$kbd-bg: var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color: null !default;\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\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","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\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// number of 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 auto;\n width: divide(100%, $count);\n }\n}\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 @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\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 // `$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 // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // Use custom CSS variable name if present, otherwise default to `class`\n $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.min.css b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.min.css new file mode 100644 index 0000000..47b74dc --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap Grid v5.2.0 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#0d6efd;--bs-link-hover-color:#0a58ca;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!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}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.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-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}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-evenly{justify-content:space-evenly!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}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!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}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.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-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}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-sm-evenly{justify-content:space-evenly!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}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!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}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.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-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}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-md-evenly{justify-content:space-evenly!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}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!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}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.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-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}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-lg-evenly{justify-content:space-evenly!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}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!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}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.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-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}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-xl-evenly{justify-content:space-evenly!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}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!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}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap-grid.min.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.min.css.map b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.min.css.map new file mode 100644 index 0000000..39e360a --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_root.scss","../../scss/vendor/_rfs.scss","../../scss/_containers.scss","dist/css/bootstrap-grid.css","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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","sourcesContent":["@mixin bsBanner($file, $suffix:\"\") {\n /*!\n * Bootstrap #{$file} v5.2.0 (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\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{$font-family-base};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n --#{$prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n --#{$prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-hover-color: #{$link-hover-color};\n\n --#{$prefix}code-color: #{$code-color};\n\n --#{$prefix}highlight-bg: #{$mark-bg};\n}\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start 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 values 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// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\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-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\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-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 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// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\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-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n }\n @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + ' ' + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + ' ' + $value;\n }\n\n @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\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($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluidVal: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluidVal {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\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 @include _rfs-media-query-rule {\n #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-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 * Bootstrap Grid v5.2.0 (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:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-2xl: 2rem;\n --bs-border-radius-pill: 50rem;\n --bs-link-color: #0d6efd;\n --bs-link-hover-color: #0a58ca;\n --bs-code-color: #d63384;\n --bs-highlight-bg: #fff3cd;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-right: auto;\n margin-left: auto;\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, xxl: 1400px)\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, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($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, xxl: 1400px))\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.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `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(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .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, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\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 $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $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($next, $breakpoints) {\n @content;\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 @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\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","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\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// number of 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 auto;\n width: divide(100%, $count);\n }\n}\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 @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\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 // `$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 // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // Use custom CSS variable name if present, otherwise default to `class`\n $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.css b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.css new file mode 100644 index 0000000..5ec5f2c --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.css @@ -0,0 +1,4123 @@ +/*! + * Bootstrap Grid v5.2.0 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #0d6efd; + --bs-link-hover-color: #0a58ca; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-left: calc(var(--bs-gutter-x) * 0.5); + padding-right: calc(var(--bs-gutter-x) * 0.5); + margin-left: auto; + margin-right: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-left: calc(var(--bs-gutter-x) * 0.5); + padding-right: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-right: 8.33333333%; +} + +.offset-2 { + margin-right: 16.66666667%; +} + +.offset-3 { + margin-right: 25%; +} + +.offset-4 { + margin-right: 33.33333333%; +} + +.offset-5 { + margin-right: 41.66666667%; +} + +.offset-6 { + margin-right: 50%; +} + +.offset-7 { + margin-right: 58.33333333%; +} + +.offset-8 { + margin-right: 66.66666667%; +} + +.offset-9 { + margin-right: 75%; +} + +.offset-10 { + margin-right: 83.33333333%; +} + +.offset-11 { + margin-right: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-right: 0; + } + .offset-sm-1 { + margin-right: 8.33333333%; + } + .offset-sm-2 { + margin-right: 16.66666667%; + } + .offset-sm-3 { + margin-right: 25%; + } + .offset-sm-4 { + margin-right: 33.33333333%; + } + .offset-sm-5 { + margin-right: 41.66666667%; + } + .offset-sm-6 { + margin-right: 50%; + } + .offset-sm-7 { + margin-right: 58.33333333%; + } + .offset-sm-8 { + margin-right: 66.66666667%; + } + .offset-sm-9 { + margin-right: 75%; + } + .offset-sm-10 { + margin-right: 83.33333333%; + } + .offset-sm-11 { + margin-right: 91.66666667%; + } + .g-sm-0, +.gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, +.gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, +.gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, +.gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, +.gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, +.gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, +.gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, +.gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, +.gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, +.gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, +.gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, +.gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-right: 0; + } + .offset-md-1 { + margin-right: 8.33333333%; + } + .offset-md-2 { + margin-right: 16.66666667%; + } + .offset-md-3 { + margin-right: 25%; + } + .offset-md-4 { + margin-right: 33.33333333%; + } + .offset-md-5 { + margin-right: 41.66666667%; + } + .offset-md-6 { + margin-right: 50%; + } + .offset-md-7 { + margin-right: 58.33333333%; + } + .offset-md-8 { + margin-right: 66.66666667%; + } + .offset-md-9 { + margin-right: 75%; + } + .offset-md-10 { + margin-right: 83.33333333%; + } + .offset-md-11 { + margin-right: 91.66666667%; + } + .g-md-0, +.gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, +.gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, +.gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, +.gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, +.gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, +.gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, +.gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, +.gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, +.gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, +.gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, +.gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, +.gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-right: 0; + } + .offset-lg-1 { + margin-right: 8.33333333%; + } + .offset-lg-2 { + margin-right: 16.66666667%; + } + .offset-lg-3 { + margin-right: 25%; + } + .offset-lg-4 { + margin-right: 33.33333333%; + } + .offset-lg-5 { + margin-right: 41.66666667%; + } + .offset-lg-6 { + margin-right: 50%; + } + .offset-lg-7 { + margin-right: 58.33333333%; + } + .offset-lg-8 { + margin-right: 66.66666667%; + } + .offset-lg-9 { + margin-right: 75%; + } + .offset-lg-10 { + margin-right: 83.33333333%; + } + .offset-lg-11 { + margin-right: 91.66666667%; + } + .g-lg-0, +.gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, +.gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, +.gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, +.gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, +.gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, +.gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, +.gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, +.gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, +.gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, +.gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, +.gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, +.gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-right: 0; + } + .offset-xl-1 { + margin-right: 8.33333333%; + } + .offset-xl-2 { + margin-right: 16.66666667%; + } + .offset-xl-3 { + margin-right: 25%; + } + .offset-xl-4 { + margin-right: 33.33333333%; + } + .offset-xl-5 { + margin-right: 41.66666667%; + } + .offset-xl-6 { + margin-right: 50%; + } + .offset-xl-7 { + margin-right: 58.33333333%; + } + .offset-xl-8 { + margin-right: 66.66666667%; + } + .offset-xl-9 { + margin-right: 75%; + } + .offset-xl-10 { + margin-right: 83.33333333%; + } + .offset-xl-11 { + margin-right: 91.66666667%; + } + .g-xl-0, +.gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, +.gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, +.gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, +.gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, +.gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, +.gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, +.gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, +.gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, +.gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, +.gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, +.gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, +.gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-right: 0; + } + .offset-xxl-1 { + margin-right: 8.33333333%; + } + .offset-xxl-2 { + margin-right: 16.66666667%; + } + .offset-xxl-3 { + margin-right: 25%; + } + .offset-xxl-4 { + margin-right: 33.33333333%; + } + .offset-xxl-5 { + margin-right: 41.66666667%; + } + .offset-xxl-6 { + margin-right: 50%; + } + .offset-xxl-7 { + margin-right: 58.33333333%; + } + .offset-xxl-8 { + margin-right: 66.66666667%; + } + .offset-xxl-9 { + margin-right: 75%; + } + .offset-xxl-10 { + margin-right: 83.33333333%; + } + .offset-xxl-11 { + margin-right: 91.66666667%; + } + .g-xxl-0, +.gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, +.gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, +.gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, +.gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, +.gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, +.gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, +.gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, +.gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, +.gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, +.gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, +.gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, +.gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !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; +} + +.d-none { + display: none !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.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-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; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !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; +} + +.justify-content-evenly { + justify-content: space-evenly !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; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.mx-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-left: 0 !important; +} + +.me-1 { + margin-left: 0.25rem !important; +} + +.me-2 { + margin-left: 0.5rem !important; +} + +.me-3 { + margin-left: 1rem !important; +} + +.me-4 { + margin-left: 1.5rem !important; +} + +.me-5 { + margin-left: 3rem !important; +} + +.me-auto { + margin-left: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-right: 0 !important; +} + +.ms-1 { + margin-right: 0.25rem !important; +} + +.ms-2 { + margin-right: 0.5rem !important; +} + +.ms-3 { + margin-right: 1rem !important; +} + +.ms-4 { + margin-right: 1.5rem !important; +} + +.ms-5 { + margin-right: 3rem !important; +} + +.ms-auto { + margin-right: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-left: 0 !important; +} + +.pe-1 { + padding-left: 0.25rem !important; +} + +.pe-2 { + padding-left: 0.5rem !important; +} + +.pe-3 { + padding-left: 1rem !important; +} + +.pe-4 { + padding-left: 1.5rem !important; +} + +.pe-5 { + padding-left: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-right: 0 !important; +} + +.ps-1 { + padding-right: 0.25rem !important; +} + +.ps-2 { + padding-right: 0.5rem !important; +} + +.ps-3 { + padding-right: 1rem !important; +} + +.ps-4 { + padding-right: 1.5rem !important; +} + +.ps-5 { + padding-right: 3rem !important; +} + +@media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !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; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .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-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; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !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; + } + .justify-content-sm-evenly { + justify-content: space-evenly !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; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-sm-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-sm-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-sm-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-sm-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-sm-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-sm-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-left: 0 !important; + } + .me-sm-1 { + margin-left: 0.25rem !important; + } + .me-sm-2 { + margin-left: 0.5rem !important; + } + .me-sm-3 { + margin-left: 1rem !important; + } + .me-sm-4 { + margin-left: 1.5rem !important; + } + .me-sm-5 { + margin-left: 3rem !important; + } + .me-sm-auto { + margin-left: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-right: 0 !important; + } + .ms-sm-1 { + margin-right: 0.25rem !important; + } + .ms-sm-2 { + margin-right: 0.5rem !important; + } + .ms-sm-3 { + margin-right: 1rem !important; + } + .ms-sm-4 { + margin-right: 1.5rem !important; + } + .ms-sm-5 { + margin-right: 3rem !important; + } + .ms-sm-auto { + margin-right: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-sm-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-sm-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-sm-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-sm-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-sm-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-left: 0 !important; + } + .pe-sm-1 { + padding-left: 0.25rem !important; + } + .pe-sm-2 { + padding-left: 0.5rem !important; + } + .pe-sm-3 { + padding-left: 1rem !important; + } + .pe-sm-4 { + padding-left: 1.5rem !important; + } + .pe-sm-5 { + padding-left: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-right: 0 !important; + } + .ps-sm-1 { + padding-right: 0.25rem !important; + } + .ps-sm-2 { + padding-right: 0.5rem !important; + } + .ps-sm-3 { + padding-right: 1rem !important; + } + .ps-sm-4 { + padding-right: 1.5rem !important; + } + .ps-sm-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !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; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .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-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; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !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; + } + .justify-content-md-evenly { + justify-content: space-evenly !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; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-md-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-md-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-md-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-md-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-md-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-md-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-left: 0 !important; + } + .me-md-1 { + margin-left: 0.25rem !important; + } + .me-md-2 { + margin-left: 0.5rem !important; + } + .me-md-3 { + margin-left: 1rem !important; + } + .me-md-4 { + margin-left: 1.5rem !important; + } + .me-md-5 { + margin-left: 3rem !important; + } + .me-md-auto { + margin-left: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-right: 0 !important; + } + .ms-md-1 { + margin-right: 0.25rem !important; + } + .ms-md-2 { + margin-right: 0.5rem !important; + } + .ms-md-3 { + margin-right: 1rem !important; + } + .ms-md-4 { + margin-right: 1.5rem !important; + } + .ms-md-5 { + margin-right: 3rem !important; + } + .ms-md-auto { + margin-right: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-md-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-md-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-md-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-md-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-md-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-left: 0 !important; + } + .pe-md-1 { + padding-left: 0.25rem !important; + } + .pe-md-2 { + padding-left: 0.5rem !important; + } + .pe-md-3 { + padding-left: 1rem !important; + } + .pe-md-4 { + padding-left: 1.5rem !important; + } + .pe-md-5 { + padding-left: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-right: 0 !important; + } + .ps-md-1 { + padding-right: 0.25rem !important; + } + .ps-md-2 { + padding-right: 0.5rem !important; + } + .ps-md-3 { + padding-right: 1rem !important; + } + .ps-md-4 { + padding-right: 1.5rem !important; + } + .ps-md-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !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; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .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-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; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !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; + } + .justify-content-lg-evenly { + justify-content: space-evenly !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; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-lg-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-lg-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-lg-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-lg-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-lg-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-lg-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-left: 0 !important; + } + .me-lg-1 { + margin-left: 0.25rem !important; + } + .me-lg-2 { + margin-left: 0.5rem !important; + } + .me-lg-3 { + margin-left: 1rem !important; + } + .me-lg-4 { + margin-left: 1.5rem !important; + } + .me-lg-5 { + margin-left: 3rem !important; + } + .me-lg-auto { + margin-left: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-right: 0 !important; + } + .ms-lg-1 { + margin-right: 0.25rem !important; + } + .ms-lg-2 { + margin-right: 0.5rem !important; + } + .ms-lg-3 { + margin-right: 1rem !important; + } + .ms-lg-4 { + margin-right: 1.5rem !important; + } + .ms-lg-5 { + margin-right: 3rem !important; + } + .ms-lg-auto { + margin-right: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-lg-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-lg-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-lg-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-lg-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-lg-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-left: 0 !important; + } + .pe-lg-1 { + padding-left: 0.25rem !important; + } + .pe-lg-2 { + padding-left: 0.5rem !important; + } + .pe-lg-3 { + padding-left: 1rem !important; + } + .pe-lg-4 { + padding-left: 1.5rem !important; + } + .pe-lg-5 { + padding-left: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-right: 0 !important; + } + .ps-lg-1 { + padding-right: 0.25rem !important; + } + .ps-lg-2 { + padding-right: 0.5rem !important; + } + .ps-lg-3 { + padding-right: 1rem !important; + } + .ps-lg-4 { + padding-right: 1.5rem !important; + } + .ps-lg-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !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; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .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-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; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !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; + } + .justify-content-xl-evenly { + justify-content: space-evenly !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; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-xl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-xl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-xl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-xl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-xl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-xl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-left: 0 !important; + } + .me-xl-1 { + margin-left: 0.25rem !important; + } + .me-xl-2 { + margin-left: 0.5rem !important; + } + .me-xl-3 { + margin-left: 1rem !important; + } + .me-xl-4 { + margin-left: 1.5rem !important; + } + .me-xl-5 { + margin-left: 3rem !important; + } + .me-xl-auto { + margin-left: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-right: 0 !important; + } + .ms-xl-1 { + margin-right: 0.25rem !important; + } + .ms-xl-2 { + margin-right: 0.5rem !important; + } + .ms-xl-3 { + margin-right: 1rem !important; + } + .ms-xl-4 { + margin-right: 1.5rem !important; + } + .ms-xl-5 { + margin-right: 3rem !important; + } + .ms-xl-auto { + margin-right: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-xl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-xl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-xl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-xl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-xl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-left: 0 !important; + } + .pe-xl-1 { + padding-left: 0.25rem !important; + } + .pe-xl-2 { + padding-left: 0.5rem !important; + } + .pe-xl-3 { + padding-left: 1rem !important; + } + .pe-xl-4 { + padding-left: 1.5rem !important; + } + .pe-xl-5 { + padding-left: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-right: 0 !important; + } + .ps-xl-1 { + padding-right: 0.25rem !important; + } + .ps-xl-2 { + padding-right: 0.5rem !important; + } + .ps-xl-3 { + padding-right: 1rem !important; + } + .ps-xl-4 { + padding-right: 1.5rem !important; + } + .ps-xl-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-xxl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-xxl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-xxl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-xxl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-xxl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-xxl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-left: 0 !important; + } + .me-xxl-1 { + margin-left: 0.25rem !important; + } + .me-xxl-2 { + margin-left: 0.5rem !important; + } + .me-xxl-3 { + margin-left: 1rem !important; + } + .me-xxl-4 { + margin-left: 1.5rem !important; + } + .me-xxl-5 { + margin-left: 3rem !important; + } + .me-xxl-auto { + margin-left: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-right: 0 !important; + } + .ms-xxl-1 { + margin-right: 0.25rem !important; + } + .ms-xxl-2 { + margin-right: 0.5rem !important; + } + .ms-xxl-3 { + margin-right: 1rem !important; + } + .ms-xxl-4 { + margin-right: 1.5rem !important; + } + .ms-xxl-5 { + margin-right: 3rem !important; + } + .ms-xxl-auto { + margin-right: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-xxl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-xxl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-xxl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-xxl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-xxl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-left: 0 !important; + } + .pe-xxl-1 { + padding-left: 0.25rem !important; + } + .pe-xxl-2 { + padding-left: 0.5rem !important; + } + .pe-xxl-3 { + padding-left: 1rem !important; + } + .pe-xxl-4 { + padding-left: 1.5rem !important; + } + .pe-xxl-5 { + padding-left: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-right: 0 !important; + } + .ps-xxl-1 { + padding-right: 0.25rem !important; + } + .ps-xxl-2 { + padding-right: 0.5rem !important; + } + .ps-xxl-3 { + padding-right: 1rem !important; + } + .ps-xxl-4 { + padding-right: 1.5rem !important; + } + .ps-xxl-5 { + padding-right: 3rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !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; + } + .d-print-none { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap-grid.rtl.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.css.map b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.css.map new file mode 100644 index 0000000..ae800e9 --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_root.scss","../../scss/vendor/_rfs.scss","bootstrap-grid.css","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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IGI;IAOI,0BAAA;EPwrDV;EO/rDM;IAOI,gCAAA;EP2rDV;EOlsDM;IAOI,yBAAA;EP8rDV;EOrsDM;IAOI,wBAAA;EPisDV;EOxsDM;IAOI,yBAAA;EPosDV;EO3sDM;IAOI,6BAAA;EPusDV;EO9sDM;IAOI,8BAAA;EP0sDV;EOjtDM;IAOI,wBAAA;EP6sDV;EOptDM;IAOI,+BAAA;EPgtDV;EOvtDM;IAOI,wBAAA;EPmtDV;EO1tDM;IAOI,yBAAA;EPstDV;EO7tDM;IAOI,8BAAA;EPytDV;EOhuDM;IAOI,iCAAA;EP4tDV;EOnuDM;IAOI,sCAAA;EP+tDV;EOtuDM;IAOI,yCAAA;EPkuDV;EOzuDM;IAOI,uBAAA;EPquDV;EO5uDM;IAOI,uBAAA;EPwuDV;EO/uDM;IAOI,yBAAA;EP2uDV;EOlvDM;IAOI,yBAAA;EP8uDV;EOrvDM;IAOI,0BAAA;EPivDV;EOxvDM;IAOI,4BAAA;EPovDV;EO3vDM;IAOI,kCAAA;EPuvDV;EO9vDM;IAOI,sCAAA;EP0vDV;EOjwDM;IAOI,oCAAA;EP6vDV;EOpwDM;IAOI,kCAAA;EPgwDV;EOvwDM;IAOI,yCAAA;EPmwDV;EO1wDM;IAOI,wCAAA;EPswDV;EO7wDM;IAOI,wCAAA;EPywDV;EOhxDM;IAOI,kCAAA;EP4wDV;EOnxDM;IAOI,gCAAA;EP+wDV;EOtxDM;IAOI,8BAAA;EPkxDV;EOzxDM;IAOI,gCAAA;EPqxDV;EO5xDM;IAOI,+BAAA;EPwxDV;EO/xDM;IAOI,oCAAA;EP2xDV;EOlyDM;IAOI,kCAAA;EP8xDV;EOryDM;IAOI,gCAAA;EPiyDV;EOxyDM;IAOI,uCAAA;EPoyDV;EO3yDM;IAOI,sCAAA;EPuyDV;EO9yDM;IAOI,iCAAA;EP0yDV;EOjzDM;IAOI,2BAAA;EP6yDV;EOpzDM;IAOI,iCAAA;EPgzDV;EOvzDM;IAOI,+BAAA;EPmzDV;EO1zDM;IAOI,6BAAA;EPszDV;EO7zDM;IAOI,+BAAA;EPyzDV;EOh0DM;IAOI,8BAAA;EP4zDV;EOn0DM;IAOI,oBAAA;EP+zDV;EOt0DM;IAOI,mBAAA;EPk0DV;EOz0DM;IAOI,mBAAA;EPq0DV;EO5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;EP8lEV;EOrmEM;IAOI,kCAAA;EPimEV;EOxmEM;IAOI,iCAAA;EPomEV;EO3mEM;IAOI,+BAAA;EPumEV;EO9mEM;IAOI,iCAAA;EP0mEV;EOjnEM;IAOI,+BAAA;EP6mEV;EOpnEM;IAOI,2BAAA;EPgnEV;EOvnEM;IAOI,iCAAA;EPmnEV;EO1nEM;IAOI,gCAAA;EPsnEV;EO7nEM;IAOI,8BAAA;EPynEV;EOhoEM;IAOI,gCAAA;EP4nEV;EOnoEM;IAOI,8BAAA;EP+nEV;AACF;AG1oEI;EIGI;IAOI,0BAAA;EPooEV;EO3oEM;IAOI,gCAAA;EPuoEV;EO9oEM;IAOI,yBAAA;EP0oEV;EOjpEM;IAOI,wBAAA;EP6oEV;EOppEM;IAOI,yBAAA;EPgpEV;EOvpEM;IAOI,6BAAA;EPmpEV;EO1pEM;IAOI,8BAAA;EPspEV;EO7pEM;IAOI,wBAAA;EPypEV;EOhqEM;IAOI,+BAAA;EP4pEV;EOnqEM;IAOI,wBAAA;EP+pEV;EOtqEM;IAOI,yBAAA;EPkqEV;EOzqEM;IAOI,8BAAA;EPqqEV;EO5qEM;IAOI,iCAAA;EPwqEV;EO/qEM;IAOI,sCAAA;EP2qEV;EOlrEM;IAOI,yCAAA;EP8qEV;EOrrEM;IAOI,uBAAA;EPirEV;EOxrEM;IAOI,uBAAA;EPorEV;EO3rEM;IAOI,yBAAA;EPurEV;EO9rEM;IAOI,yBAAA;EP0rEV;EOjsEM;IAOI,0BAAA;EP6rEV;EOpsEM;IAOI,4BAAA;EPgsEV;EOvsEM;IAOI,kCAAA;EPmsEV;EO1sEM;IAOI,sCAAA;EPssEV;EO7sEM;IAOI,oCAAA;EPysEV;EOhtEM;IAOI,kCAAA;EP4sEV;EOntEM;IAOI,yCAAA;EP+sEV;EOttEM;IAOI,wCAAA;EPktEV;EOztEM;IAOI,wCAAA;EPqtEV;EO5tEM;IAOI,kCAAA;EPwtEV;EO/tEM;IAOI,gCAAA;EP2tEV;EOluEM;IAOI,8BAAA;EP8tEV;EOruEM;IAOI,gCAAA;EPiuEV;EOxuEM;IAOI,+BAAA;EPouEV;EO3uEM;IAOI,oCAAA;EPuuEV;EO9uEM;IAOI,kCAAA;EP0uEV;EOjvEM;IAOI,gCAAA;EP6uEV;EOpvEM;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gFV;EO7gFM;IAOI,+BAAA;EPygFV;EOhhFM;IAOI,8BAAA;EP4gFV;EOnhFM;IAOI,4BAAA;EP+gFV;EOthFM;IAOI,8BAAA;EPkhFV;EOzhFM;IAOI,4BAAA;EPqhFV;EO5hFM;IAOI,0BAAA;EPwhFV;EO/hFM;IAOI,gCAAA;EP2hFV;EOliFM;IAOI,+BAAA;EP8hFV;EOriFM;IAOI,6BAAA;EPiiFV;EOxiFM;IAOI,+BAAA;EPoiFV;EO3iFM;IAOI,6BAAA;EPuiFV;EO9iFM;IAOI,4BAAA;EP0iFV;EOjjFM;IAOI,kCAAA;EP6iFV;EOpjFM;IAOI,iCAAA;EPgjFV;EOvjFM;IAOI,+BAAA;EPmjFV;EO1jFM;IAOI,iCAAA;EPsjFV;EO7jFM;IAOI,+BAAA;EPyjFV;EOhkFM;IAOI,2BAAA;EP4jFV;EOnkFM;IAOI,iCAAA;EP+jFV;EOtkFM;IAOI,gCAAA;EPkkFV;EOzkFM;IAOI,8BAAA;EPqkFV;EO5kFM;IAOI,gCAAA;EPwkFV;EO/kFM;IAOI,8BAAA;EP2kFV;AACF;AGtlFI;EIGI;IAOI,0BAAA;EPglFV;EOvlFM;IAOI,gCAAA;EPmlFV;EO1lFM;IAOI,yBAAA;EPslFV;EO7lFM;IAOI,wBAAA;EPylFV;EOhmFM;IAOI,yBAAA;EP4lFV;EOnmFM;IAOI,6BAAA;EP+lFV;EOtmFM;IAOI,8BAAA;EPkmFV;EOzmFM;IAOI,wBAAA;EPqmFV;EO5mFM;IAOI,+BAAA;EPwmFV;EO/mFM;IAOI,wBAAA;EP2mFV;EOlnFM;IAOI,yBAAA;EP8mFV;EOrnFM;IAOI,8BAAA;EPinFV;EOxnFM;IAOI,iCAAA;EPonFV;EO3nFM;IAOI,sCAAA;EPunFV;EO9nFM;IAOI,yCAAA;EP0nFV;EOjoFM;IAOI,uBAAA;EP6nFV;EOpoFM;IAOI,uBAAA;EPgoFV;EOvoFM;IAOI,yBAAA;EPmoFV;EO1oFM;IAOI,yBAAA;EPsoFV;EO7oFM;IAOI,0BAAA;EPyoFV;EOhpFM;IAOI,4BAAA;EP4oFV;EOnpFM;IAOI,kCAAA;EP+oFV;EOtpFM;IAOI,sCAAA;EPkpFV;EOzpFM;IAOI,oCAAA;EPqpFV;EO5pFM;IAOI,kCAAA;EPwpFV;EO/pFM;IAOI,yCAAA;EP2pFV;EOlqFM;IAOI,wCAAA;EP8pFV;EOrqFM;IAOI,wCAAA;EPiqFV;EOxqFM;IAOI,kCAAA;EPoqFV;EO3qFM;IAOI,gCAAA;EPuqFV;EO9qFM;IAOI,8BAAA;EP0qFV;EOjrFM;IAOI,gCAAA;EP6qFV;EOprFM;IAOI,+BAAA;EPgrFV;EOvrFM;IAOI,oCAAA;EPmrFV;EO1rFM;IAOI,kCAAA;EPsrFV;EO7rFM;IAOI,gCAAA;EPyrFV;EOhsFM;IAOI,uCAAA;EP4rFV;EOnsFM;IAOI,sCAAA;EP+rFV;EOtsFM;IAOI,iCAAA;EPksFV;EOzsFM;IAOI,2BAAA;EPqsFV;EO5sFM;IAOI,iCAAA;EPwsFV;EO/sFM;IAOI,+BAAA;EP2sFV;EOltFM;IAOI,6BAAA;EP8sFV;EOrtFM;IAOI,+BAAA;EPitFV;EOxtFM;IAOI,8BAAA;EPotFV;EO3tFM;IAOI,oBAAA;EPutFV;EO9tFM;IAOI,mBAAA;EP0tFV;EOjuFM;IAOI,mBAAA;EP6tFV;EOpuFM;IAOI,mBAAA;EPguFV;EOvuFM;IAOI,mBAAA;EPmuFV;EO1uFM;IAOI,mBAAA;EPsuFV;EO7uFM;IAOI,mBAAA;EPyuFV;EOhvFM;IAOI,mBAAA;EP4uFV;EOnvFM;IAOI,oBAAA;EP+uFV;EOtvFM;IAOI,0BAAA;EPkvFV;EOzvFM;IAOI,yBAAA;EPqvFV;EO5vFM;IAOI,uBAAA;EPwvFV;EO/vFM;IAOI,yBAAA;EP2vFV;EOlwFM;IAOI,uBAAA;EP8vFV;EOrwFM;IAOI,uBAAA;EPiwFV;EOxwFM;IAOI,yBAAA;IAAA,0BAAA;EPqwFV;EO5wFM;IAOI,+BAAA;IAAA,gCAAA;EPywFV;EOhxFM;IAOI,8BAAA;IAAA,+BAAA;EP6wFV;EOpxFM;IAOI,4BAAA;IAAA,6BAAA;EPixFV;EOxxFM;IAOI,8BAAA;IAAA,+BAAA;EPqxFV;EO5xFM;IAOI,4BAAA;IAAA,6BAAA;EPyxFV;EOhyFM;IAOI,4BAAA;IAAA,6BAAA;EP6xFV;EOpyFM;IAOI,wBAAA;IAAA,2BAAA;EPiyFV;EOxyFM;IAOI,8BAAA;IAAA,iCAAA;EPqyFV;EO5yFM;IAOI,6BAAA;IAAA,gCAAA;EPyyFV;EOhzFM;IAOI,2BAAA;IAAA,8BAAA;EP6yFV;EOpzFM;IAOI,6BAAA;IAAA,gCAAA;EPizFV;EOxzFM;IAOI,2BAAA;IAAA,8BAAA;EPqzFV;EO5zFM;IAOI,2BAAA;IAAA,8BAAA;EPyzFV;EOh0FM;IAOI,wBAAA;EP4zFV;EOn0FM;IAOI,8BAAA;EP+zFV;EOt0FM;IAOI,6BAAA;EPk0FV;EOz0FM;IAOI,2BAAA;EPq0FV;EO50FM;IAOI,6BAAA;EPw0FV;EO/0FM;IAOI,2BAAA;EP20FV;EOl1FM;IAOI,2BAAA;EP80FV;EOr1FM;IAOI,yBAAA;EPi1FV;EOx1FM;IAOI,+BAAA;EPo1FV;EO31FM;IAOI,8BAAA;EPu1FV;EO91FM;IAOI,4BAAA;EP01FV;EOj2FM;IAOI,8BAAA;EP61FV;EOp2FM;IAOI,4BAAA;EPg2FV;EOv2FM;IAOI,4BAAA;EPm2FV;EO12FM;IAOI,2BAAA;EPs2FV;EO72FM;IAOI,iCAAA;EPy2FV;EOh3FM;IAOI,gCAAA;EP42FV;EOn3FM;IAOI,8BAAA;EP+2FV;EOt3FM;IAOI,gCAAA;EPk3FV;EOz3FM;IAOI,8BAAA;EPq3FV;EO53FM;IAOI,8BAAA;EPw3FV;EO/3FM;IAOI,0BAAA;EP23FV;EOl4FM;IAOI,gCAAA;EP83FV;EOr4FM;IAOI,+BAAA;EPi4FV;EOx4FM;IAOI,6BAAA;EPo4FV;EO34FM;IAOI,+BAAA;EPu4FV;EO94FM;IAOI,6BAAA;EP04FV;EOj5FM;IAOI,6BAAA;EP64FV;EOp5FM;IAOI,qBAAA;EPg5FV;EOv5FM;IAOI,2BAAA;EPm5FV;EO15FM;IAOI,0BAAA;EPs5FV;EO75FM;IAOI,wBAAA;EPy5FV;EOh6FM;IAOI,0BAAA;EP45FV;EOn6FM;IAOI,wBAAA;EP+5FV;EOt6FM;IAOI,0BAAA;IAAA,2BAAA;EPm6FV;EO16FM;IAOI,gCAAA;IAAA,iCAAA;EPu6FV;EO96FM;IAOI,+BAAA;IAAA,gCAAA;EP26FV;EOl7FM;IAOI,6BAAA;IAAA,8BAAA;EP+6FV;EOt7FM;IAOI,+BAAA;IAAA,gCAAA;EPm7FV;EO17FM;IAOI,6BAAA;IAAA,8BAAA;EPu7FV;EO97FM;IAOI,yBAAA;IAAA,4BAAA;EP27FV;EOl8FM;IAOI,+BAAA;IAAA,kCAAA;EP+7FV;EOt8FM;IAOI,8BAAA;IAAA,iCAAA;EPm8FV;EO18FM;IAOI,4BAAA;IAAA,+BAAA;EPu8FV;EO98FM;IAOI,8BAAA;IAAA,iCAAA;EP28FV;EOl9FM;IAOI,4BAAA;IAAA,+BAAA;EP+8FV;EOt9FM;IAOI,yBAAA;EPk9FV;EOz9FM;IAOI,+BAAA;EPq9FV;EO59FM;IAOI,8BAAA;EPw9FV;EO/9FM;IAOI,4BAAA;EP29FV;EOl+FM;IAOI,8BAAA;EP89FV;EOr+FM;IAOI,4BAAA;EPi+FV;EOx+FM;IAOI,0BAAA;EPo+FV;EO3+FM;IAOI,gCAAA;EPu+FV;EO9+FM;IAOI,+BAAA;EP0+FV;EOj/FM;IAOI,6BAAA;EP6+FV;EOp/FM;IAOI,+BAAA;EPg/FV;EOv/FM;IAOI,6BAAA;EPm/FV;EO1/FM;IAOI,4BAAA;EPs/FV;EO7/FM;IAOI,kCAAA;EPy/FV;EOhgGM;IAOI,iCAAA;EP4/FV;EOngGM;IAOI,+BAAA;EP+/FV;EOtgGM;IAOI,iCAAA;EPkgGV;EOzgGM;IAOI,+BAAA;EPqgGV;EO5gGM;IAOI,2BAAA;EPwgGV;EO/gGM;IAOI,iCAAA;EP2gGV;EOlhGM;IAOI,gCAAA;EP8gGV;EOrhGM;IAOI,8BAAA;EPihGV;EOxhGM;IAOI,gCAAA;EPohGV;EO3hGM;IAOI,8BAAA;EPuhGV;AACF;AGliGI;EIGI;IAOI,0BAAA;EP4hGV;EOniGM;IAOI,gCAAA;EP+hGV;EOtiGM;IAOI,yBAAA;EPkiGV;EOziGM;IAOI,wBAAA;EPqiGV;EO5iGM;IAOI,yBAAA;EPwiGV;EO/iGM;IAOI,6BAAA;EP2iGV;EOljGM;IAOI,8BAAA;EP8iGV;EOrjGM;IAOI,wBAAA;EPijGV;EOxjGM;IAOI,+BAAA;EPojGV;EO3jGM;IAOI,wBAAA;EPujGV;EO9jGM;IAOI,yBAAA;EP0jGV;EOjkGM;IAOI,8BAAA;EP6jGV;EOpkGM;IAOI,iCAAA;EPgkGV;EOvkGM;IAOI,sCAAA;EPmkGV;EO1kGM;IAOI,yCAAA;EPskGV;EO7kGM;IAOI,uBAAA;EPykGV;EOhlGM;IAOI,uBAAA;EP4kGV;EOnlGM;IAOI,yBAAA;EP+kGV;EOtlGM;IAOI,yBAAA;EPklGV;EOzlGM;IAOI,0BAAA;EPqlGV;EO5lGM;IAOI,4BAAA;EPwlGV;EO/lGM;IAOI,kCAAA;EP2lGV;EOlmGM;IAOI,sCAAA;EP8lGV;EOrmGM;IAOI,oCAAA;EPimGV;EOxmGM;IAOI,kCAAA;EPomGV;EO3mGM;IAOI,yCAAA;EPumGV;EO9mGM;IAOI,wCAAA;EP0mGV;EOjnGM;IAOI,wCAAA;EP6mGV;EOpnGM;IAOI,kCAAA;EPgnGV;EOvnGM;IAOI,gCAAA;EPmnGV;EO1nGM;IAOI,8BAAA;EPsnGV;EO7nGM;IAOI,gCAAA;EPynGV;EOhoGM;IAOI,+BAAA;EP4nGV;EOnoGM;IAOI,oCAAA;EP+nGV;EOtoGM;IAOI,kCAAA;EPkoGV;EOzoGM;IAOI,gCAAA;EPqoGV;EO5oGM;IAOI,uCAAA;EPwoGV;EO/oGM;IAOI,sCAAA;EP2oGV;EOlpGM;IAOI,iCAAA;EP8oGV;EOrpGM;IAOI,2BAAA;EPipGV;EOxpGM;IAOI,iCAAA;EPopGV;EO3pGM;IAOI,+BAAA;EPupGV;EO9pGM;IAOI,6BAAA;EP0pGV;EOjqGM;IAOI,+BAAA;EP6pGV;EOpqGM;IAOI,8BAAA;EPgqGV;EOvqGM;IAOI,oBAAA;EPmqGV;EO1qGM;IAOI,mBAAA;EPsqGV;EO7qGM;IAOI,mBAAA;EPyqGV;EOhrGM;IAOI,mBAAA;EP4qGV;EOnrGM;IAOI,mBAAA;EP+qGV;EOtrGM;IAOI,mBAAA;EPkrGV;EOzrGM;IAOI,mBAAA;EPqrGV;EO5rGM;IAOI,mBAAA;EPwrGV;EO/rGM;IAOI,oBAAA;EP2rGV;EOlsGM;IAOI,0BAAA;EP8rGV;EOrsGM;IAOI,yBAAA;EPisGV;EOxsGM;IAOI,uBAAA;EPosGV;EO3sGM;IAOI,yBAAA;EPusGV;EO9sGM;IAOI,uBAAA;EP0sGV;EOjtGM;IAOI,uBAAA;EP6sGV;EOptGM;IAOI,yBA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Pw+GV;EO/+GM;IAOI,gCAAA;EP2+GV;EOl/GM;IAOI,yBAAA;EP8+GV;EOr/GM;IAOI,wBAAA;EPi/GV;EOx/GM;IAOI,yBAAA;EPo/GV;EO3/GM;IAOI,6BAAA;EPu/GV;EO9/GM;IAOI,8BAAA;EP0/GV;EOjgHM;IAOI,wBAAA;EP6/GV;EOpgHM;IAOI,+BAAA;EPggHV;EOvgHM;IAOI,wBAAA;EPmgHV;EO1gHM;IAOI,yBAAA;EPsgHV;EO7gHM;IAOI,8BAAA;EPygHV;EOhhHM;IAOI,iCAAA;EP4gHV;EOnhHM;IAOI,sCAAA;EP+gHV;EOthHM;IAOI,yCAAA;EPkhHV;EOzhHM;IAOI,uBAAA;EPqhHV;EO5hHM;IAOI,uBAAA;EPwhHV;EO/hHM;IAOI,yBAAA;EP2hHV;EOliHM;IAOI,yBAAA;EP8hHV;EOriHM;IAOI,0BAAA;EPiiHV;EOxiHM;IAOI,4BAAA;EPoiHV;EO3iHM;IAOI,kCAAA;EPuiHV;EO9iHM;IAOI,sCAAA;EP0iHV;EOjjHM;IAOI,oCAAA;EP6iHV;EOpjHM;IAOI,kCAAA;EPgjHV;EOvjHM;IAOI,yCAAA;EPmjHV;EO1jHM;IAOI,wCAAA;EPsjHV;EO7jHM;IAOI,wCAAA;EPyjHV;EOhkHM;IAOI,kCAAA;EP4jHV;EOnkHM;IAOI,gCAAA;EP+jHV;EOtkHM;IAOI,8BAAA;EPkkHV;EOzkHM;IAOI,gCAAA;EPqkHV;EO5kHM;IAOI,+BAAA;EPwkHV;EO/kHM;IAOI,oCAAA;EP2kHV;EOllHM;IAOI,kCAAA;EP8kHV;EOrlHM;IAOI,gCAAA;EPilHV;EOxlHM;IAOI,uCAAA;EPolHV;EO3lHM;IAOI,sCAAA;EPulHV;EO9lHM;IAOI,iCAAA;EP0lHV;EOjmHM;IAOI,2BAAA;EP6lHV;EOpmHM;IAOI,iCAAA;EPgmHV;EOvmHM;IAOI,+BAAA;EPmmHV;EO1mHM;IAOI,6BAAA;EPsmHV;EO7mHM;IAOI,+BAAA;EPymHV;EOhnHM;IAOI,8BAAA;EP4mHV;EOnnHM;IAOI,oBAAA;EP+mHV;EOtnHM;IAOI,mBAAA;EPknHV;EOznHM;IAOI,mBAAA;EPqnHV;EO5nHM;IAOI,mBAAA;E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","file":"bootstrap-grid.rtl.css","sourcesContent":["@mixin bsBanner($file, $suffix:\"\") {\n /*!\n * Bootstrap #{$file} v5.2.0 (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\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{$font-family-base};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n --#{$prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n --#{$prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-hover-color: #{$link-hover-color};\n\n --#{$prefix}code-color: #{$code-color};\n\n --#{$prefix}highlight-bg: #{$mark-bg};\n}\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start 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 values 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// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\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-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\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-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 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// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\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-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n }\n @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + ' ' + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + ' ' + $value;\n }\n\n @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\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($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluidVal: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluidVal {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\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 @include _rfs-media-query-rule {\n #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","/*!\n * Bootstrap Grid v5.2.0 (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:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-2xl: 2rem;\n --bs-border-radius-pill: 50rem;\n --bs-link-color: #0d6efd;\n --bs-link-hover-color: #0a58ca;\n --bs-code-color: #d63384;\n --bs-highlight-bg: #fff3cd;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-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","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-right: auto;\n margin-left: auto;\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, xxl: 1400px)\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, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($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, xxl: 1400px))\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.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `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(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .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, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\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 $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $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($next, $breakpoints) {\n @content;\n }\n }\n}\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// scss-docs-start gray-color-variables\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// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\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) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue: #0d6efd !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #d63384 !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #198754 !default;\n$teal: #20c997 !default;\n$cyan: #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\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 \"black\": $black,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio: 4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark: $black !default;\n$color-contrast-light: $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n \"blue-100\": $blue-100,\n \"blue-200\": $blue-200,\n \"blue-300\": $blue-300,\n \"blue-400\": $blue-400,\n \"blue-500\": $blue-500,\n \"blue-600\": $blue-600,\n \"blue-700\": $blue-700,\n \"blue-800\": $blue-800,\n \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n \"indigo-100\": $indigo-100,\n \"indigo-200\": $indigo-200,\n \"indigo-300\": $indigo-300,\n \"indigo-400\": $indigo-400,\n \"indigo-500\": $indigo-500,\n \"indigo-600\": $indigo-600,\n \"indigo-700\": $indigo-700,\n \"indigo-800\": $indigo-800,\n \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n \"purple-100\": $purple-100,\n \"purple-200\": $purple-200,\n \"purple-300\": $purple-300,\n \"purple-400\": $purple-400,\n \"purple-500\": $purple-500,\n \"purple-600\": $purple-600,\n \"purple-700\": $purple-700,\n \"purple-800\": $purple-800,\n \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n \"pink-100\": $pink-100,\n \"pink-200\": $pink-200,\n \"pink-300\": $pink-300,\n \"pink-400\": $pink-400,\n \"pink-500\": $pink-500,\n \"pink-600\": $pink-600,\n \"pink-700\": $pink-700,\n \"pink-800\": $pink-800,\n \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n \"red-100\": $red-100,\n \"red-200\": $red-200,\n \"red-300\": $red-300,\n \"red-400\": $red-400,\n \"red-500\": $red-500,\n \"red-600\": $red-600,\n \"red-700\": $red-700,\n \"red-800\": $red-800,\n \"red-900\": $red-900\n) !default;\n\n$oranges: (\n \"orange-100\": $orange-100,\n \"orange-200\": $orange-200,\n \"orange-300\": $orange-300,\n \"orange-400\": $orange-400,\n \"orange-500\": $orange-500,\n \"orange-600\": $orange-600,\n \"orange-700\": $orange-700,\n \"orange-800\": $orange-800,\n \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n \"yellow-100\": $yellow-100,\n \"yellow-200\": $yellow-200,\n \"yellow-300\": $yellow-300,\n \"yellow-400\": $yellow-400,\n \"yellow-500\": $yellow-500,\n \"yellow-600\": $yellow-600,\n \"yellow-700\": $yellow-700,\n \"yellow-800\": $yellow-800,\n \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n \"green-100\": $green-100,\n \"green-200\": $green-200,\n \"green-300\": $green-300,\n \"green-400\": $green-400,\n \"green-500\": $green-500,\n \"green-600\": $green-600,\n \"green-700\": $green-700,\n \"green-800\": $green-800,\n \"green-900\": $green-900\n) !default;\n\n$teals: (\n \"teal-100\": $teal-100,\n \"teal-200\": $teal-200,\n \"teal-300\": $teal-300,\n \"teal-400\": $teal-400,\n \"teal-500\": $teal-500,\n \"teal-600\": $teal-600,\n \"teal-700\": $teal-700,\n \"teal-800\": $teal-800,\n \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n \"cyan-100\": $cyan-100,\n \"cyan-200\": $cyan-200,\n \"cyan-300\": $cyan-300,\n \"cyan-400\": $cyan-400,\n \"cyan-500\": $cyan-500,\n \"cyan-600\": $cyan-600,\n \"cyan-700\": $cyan-700,\n \"cyan-800\": $cyan-800,\n \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\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-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\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) !default;\n// scss-docs-end theme-colors-map\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// 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-reduced-motion: true !default;\n$enable-smooth-scroll: true !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: false !default;\n$enable-button-pointers: true !default;\n$enable-rfs: true !default;\n$enable-validation-icons: true !default;\n$enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities: true !default;\n\n// Prefix for :root CSS variables\n\n$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix: $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\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// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n$body-text-align: null !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: $primary !default;\n$link-decoration: underline !default;\n$link-shade-percentage: 20% !default;\n$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration: null !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !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// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px,\n xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\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// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px,\n xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\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: 1.5rem !default;\n$grid-row-columns: 6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n\n$border-style: solid !default;\n$border-color: $gray-300 !default;\n$border-color-translucent: rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius: .375rem !default;\n$border-radius-sm: .25rem !default;\n$border-radius-lg: .5rem !default;\n$border-radius-xl: 1rem !default;\n$border-radius-2xl: 2rem !default;\n$border-radius-pill: 50rem !default;\n// scss-docs-end border-radius-variables\n\n// scss-docs-start box-shadow-variables\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color: $white !default;\n$component-active-bg: $primary !default;\n\n// scss-docs-start caret-variables\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"1x1\": 100%,\n \"4x3\": calc(3 / 4 * 100%),\n \"16x9\": calc(9 / 16 * 100%),\n \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, 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// stylelint-enable value-keyword-case\n$font-family-base: var(--#{$prefix}font-sans-serif) !default;\n$font-family-code: var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root: null !default;\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm: $font-size-base * .875 !default;\n$font-size-lg: $font-size-base * 1.25 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !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// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n 1: $h1-font-size,\n 2: $h2-font-size,\n 3: $h3-font-size,\n 4: $h4-font-size,\n 5: $h5-font-size,\n 6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n 1: 5rem,\n 2: 4.5rem,\n 3: 4rem,\n 4: 3.5rem,\n 5: 3rem,\n 6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style: null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\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$sub-sup-font-size: .75em !default;\n\n$text-muted: $gray-600 !default;\n\n$initialism-font-size: $small-font-size !default;\n\n$blockquote-margin-y: $spacer !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n$blockquote-footer-color: $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y: $spacer !default;\n$hr-color: inherit !default;\n\n// fusv-disable\n$hr-bg-color: null !default; // Deprecated in v5.2.0\n$hr-height: null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color: null !default; // Allows for inherited colors\n$hr-border-width: $border-width !default;\n$hr-opacity: .25 !default;\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-padding: .1875em !default;\n$mark-bg: $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y: .5rem !default;\n$table-cell-padding-x: .5rem !default;\n$table-cell-padding-y-sm: .25rem !default;\n$table-cell-padding-x-sm: .25rem !default;\n\n$table-cell-vertical-align: top !default;\n\n$table-color: var(--#{$prefix}body-color) !default;\n$table-bg: transparent !default;\n$table-accent-bg: transparent !default;\n\n$table-th-font-weight: null !default;\n\n$table-striped-color: $table-color !default;\n$table-striped-bg-factor: .05 !default;\n$table-striped-bg: rgba($black, $table-striped-bg-factor) !default;\n\n$table-active-color: $table-color !default;\n$table-active-bg-factor: .1 !default;\n$table-active-bg: rgba($black, $table-active-bg-factor) !default;\n\n$table-hover-color: $table-color !default;\n$table-hover-bg-factor: .075 !default;\n$table-hover-bg: rgba($black, $table-hover-bg-factor) !default;\n\n$table-border-factor: .1 !default;\n$table-border-width: $border-width !default;\n$table-border-color: var(--#{$prefix}border-color) !default;\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-scale: -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n \"primary\": shift-color($primary, $table-bg-scale),\n \"secondary\": shift-color($secondary, $table-bg-scale),\n \"success\": shift-color($success, $table-bg-scale),\n \"info\": shift-color($info, $table-bg-scale),\n \"warning\": shift-color($warning, $table-bg-scale),\n \"danger\": shift-color($danger, $table-bg-scale),\n \"light\": $light,\n \"dark\": $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\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: .25rem !default;\n$input-btn-focus-color-opacity: .25 !default;\n$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default;\n$input-btn-focus-blur: 0 !default;\n$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $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\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\n$input-btn-border-width: $border-width !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\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\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\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-color: var(--#{$prefix}link-color) !default;\n$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color: $gray-600 !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n$btn-border-radius-lg: $border-radius-lg !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$btn-hover-bg-shade-amount: 15% !default;\n$btn-hover-bg-tint-amount: 15% !default;\n$btn-hover-border-shade-amount: 20% !default;\n$btn-hover-border-tint-amount: 10% !default;\n$btn-active-bg-shade-amount: 20% !default;\n$btn-active-bg-tint-amount: 20% !default;\n$btn-active-border-shade-amount: 25% !default;\n$btn-active-border-tint-amount: 10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top: .25rem !default;\n$form-text-font-size: $small-font-size !default;\n$form-text-font-style: null !default;\n$form-text-font-weight: null !default;\n$form-text-color: $text-muted !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom: .5rem !default;\n$form-label-font-size: null !default;\n$form-label-font-style: null !default;\n$form-label-font-weight: null !default;\n$form-label-color: null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\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\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\n$input-bg: $body-bg !default;\n$input-disabled-color: null !default;\n$input-disabled-bg: $gray-200 !default;\n$input-disabled-border-color: null !default;\n\n$input-color: $body-color !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: $box-shadow-inset !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-sm: $border-radius-sm !default;\n$input-border-radius-lg: $border-radius-lg !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: tint-color($component-active-bg, 50%) !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 * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height * 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-color-width: 3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width: 1em !default;\n$form-check-min-height: $font-size-base * $line-height-base !default;\n$form-check-padding-start: $form-check-input-width + .5em !default;\n$form-check-margin-bottom: .125rem !default;\n$form-check-label-color: null !default;\n$form-check-label-cursor: null !default;\n$form-check-transition: null !default;\n\n$form-check-input-active-filter: brightness(90%) !default;\n\n$form-check-input-bg: $input-bg !default;\n$form-check-input-border: 1px solid rgba($black, .25) !default;\n$form-check-input-border-radius: .25em !default;\n$form-check-radio-border-radius: 50% !default;\n$form-check-input-focus-border: $input-focus-border-color !default;\n$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$form-check-input-checked-color: $component-active-color !default;\n$form-check-input-checked-bg-color: $component-active-bg !default;\n$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-check-radio-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-indeterminate-color: $component-active-color !default;\n$form-check-input-indeterminate-bg-color: $component-active-bg !default;\n$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-disabled-opacity: .5 !default;\n$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end: 1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color: rgba($black, .25) !default;\n$form-switch-width: 2em !default;\n$form-switch-padding-start: $form-switch-width + .5em !default;\n$form-switch-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-border-radius: $form-switch-width !default;\n$form-switch-transition: background-position .15s ease-in-out !default;\n\n$form-switch-focus-color: $input-focus-border-color !default;\n$form-switch-focus-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-switch-checked-color: $component-active-color !default;\n$form-switch-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y: $input-padding-y !default;\n$input-group-addon-padding-x: $input-padding-x !default;\n$input-group-addon-font-weight: $input-font-weight !default;\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// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y: $input-padding-y !default;\n$form-select-padding-x: $input-padding-x !default;\n$form-select-font-family: $input-font-family !default;\n$form-select-font-size: $input-font-size !default;\n$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight: $input-font-weight !default;\n$form-select-line-height: $input-line-height !default;\n$form-select-color: $input-color !default;\n$form-select-bg: $input-bg !default;\n$form-select-disabled-color: null !default;\n$form-select-disabled-bg: $gray-200 !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position: right $form-select-padding-x center !default;\n$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color: $gray-800 !default;\n$form-select-indicator: url(\"data:image/svg+xml,\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width: $input-border-width !default;\n$form-select-border-color: $input-border-color !default;\n$form-select-border-radius: $input-border-radius !default;\n$form-select-box-shadow: $box-shadow-inset !default;\n\n$form-select-focus-border-color: $input-focus-border-color !default;\n$form-select-focus-width: $input-focus-width !default;\n$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm: $input-padding-y-sm !default;\n$form-select-padding-x-sm: $input-padding-x-sm !default;\n$form-select-font-size-sm: $input-font-size-sm !default;\n$form-select-border-radius-sm: $input-border-radius-sm !default;\n\n$form-select-padding-y-lg: $input-padding-y-lg !default;\n$form-select-padding-x-lg: $input-padding-x-lg !default;\n$form-select-font-size-lg: $input-font-size-lg !default;\n$form-select-border-radius-lg: $input-border-radius-lg !default;\n\n$form-select-transition: $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width: 100% !default;\n$form-range-track-height: .5rem !default;\n$form-range-track-cursor: pointer !default;\n$form-range-track-bg: $gray-300 !default;\n$form-range-track-border-radius: 1rem !default;\n$form-range-track-box-shadow: $box-shadow-inset !default;\n\n$form-range-thumb-width: 1rem !default;\n$form-range-thumb-height: $form-range-thumb-width !default;\n$form-range-thumb-bg: $component-active-bg !default;\n$form-range-thumb-border: 0 !default;\n$form-range-thumb-border-radius: 1rem !default;\n$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg: $gray-500 !default;\n$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color: $input-color !default;\n$form-file-button-bg: $input-group-addon-bg !default;\n$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height: add(3.5rem, $input-height-border) !default;\n$form-floating-line-height: 1.25 !default;\n$form-floating-padding-x: $input-padding-x !default;\n$form-floating-padding-y: 1rem !default;\n$form-floating-input-padding-t: 1.625rem !default;\n$form-floating-input-padding-b: .625rem !default;\n$form-floating-label-opacity: .65 !default;\n$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $form-text-font-size !default;\n$form-feedback-font-style: $form-text-font-style !default;\n$form-feedback-valid-color: $success !default;\n$form-feedback-invalid-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,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\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) !default;\n// scss-docs-end form-validation-states\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// scss-docs-start zindex-stack\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-offcanvas-backdrop: 1040 !default;\n$zindex-offcanvas: 1045 !default;\n$zindex-modal-backdrop: 1050 !default;\n$zindex-modal: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-font-size: null !default;\n$nav-link-font-weight: null !default;\n$nav-link-color: var(--#{$prefix}link-color) !default;\n$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !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// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: null !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$navbar-brand-margin-end: 1rem !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$navbar-toggler-focus-width: $btn-focus-width !default;\n$navbar-toggler-transition: box-shadow .15s ease-in-out !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-theme-variables\n$navbar-dark-color: rgba($white, .55) !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,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .55) !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,\") !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// scss-docs-end navbar-theme-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\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: var(--#{$prefix}border-color-translucent) !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: $dropdown-border-color !default;\n$dropdown-divider-margin-y: $spacer * .5 !default;\n$dropdown-box-shadow: $box-shadow !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !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: $spacer * .25 !default;\n$dropdown-item-padding-x: $spacer !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding-x: $dropdown-item-padding-x !default;\n$dropdown-header-padding-y: $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color: $gray-300 !default;\n$dropdown-dark-bg: $gray-800 !default;\n$dropdown-dark-border-color: $dropdown-border-color !default;\n$dropdown-dark-divider-bg: $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow: null !default;\n$dropdown-dark-link-color: $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color: $white !default;\n$dropdown-dark-link-hover-bg: rgba($white, .15) !default;\n$dropdown-dark-link-active-color: $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color: $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y: .375rem !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\n$pagination-font-size: $font-size-base !default;\n\n$pagination-color: var(--#{$prefix}link-color) !default;\n$pagination-bg: $white !default;\n$pagination-border-radius: $border-radius !default;\n$pagination-border-width: $border-width !default;\n$pagination-margin-start: ($pagination-border-width * -1) !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg: $gray-200 !default;\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: var(--#{$prefix}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-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$pagination-border-radius-sm: $border-radius-sm !default;\n$pagination-border-radius-lg: $border-radius-lg !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max: .5 !default;\n$placeholder-opacity-min: .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y: $spacer !default;\n$card-spacer-x: $spacer !default;\n$card-title-spacer-y: $spacer * .5 !default;\n$card-border-width: $border-width !default;\n$card-border-color: var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius: $border-radius !default;\n$card-box-shadow: null !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y: $card-spacer-y * .5 !default;\n$card-cap-padding-x: $card-spacer-x !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$card-img-overlay-padding: $spacer !default;\n$card-group-margin: $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y: 1rem !default;\n$accordion-padding-x: 1.25rem !default;\n$accordion-color: var(--#{$prefix}body-color) !default;\n$accordion-bg: $body-bg !default;\n$accordion-border-width: $border-width !default;\n$accordion-border-color: var(--#{$prefix}border-color) !default;\n$accordion-border-radius: $border-radius !default;\n$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y: $accordion-padding-y !default;\n$accordion-body-padding-x: $accordion-padding-x !default;\n\n$accordion-button-padding-y: $accordion-padding-y !default;\n$accordion-button-padding-x: $accordion-padding-x !default;\n$accordion-button-color: $accordion-color !default;\n$accordion-button-bg: var(--#{$prefix}accordion-bg) !default;\n$accordion-transition: $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default;\n$accordion-button-active-color: shade-color($primary, 10%) !default;\n\n$accordion-button-focus-border-color: $input-focus-border-color !default;\n$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;\n\n$accordion-icon-width: 1.25rem !default;\n$accordion-icon-color: $accordion-button-color !default;\n$accordion-icon-active-color: $accordion-button-active-color !default;\n$accordion-icon-transition: transform .2s ease-in-out !default;\n$accordion-icon-transform: rotate(-180deg) !default;\n\n$accordion-button-icon: url(\"data:image/svg+xml,\") !default;\n$accordion-button-active-icon: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\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: $spacer * .25 !default;\n$tooltip-padding-x: $spacer * .5 !default;\n$tooltip-margin: null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n// fusv-disable\n$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\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: null !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\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: var(--#{$prefix}border-color-translucent) !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: $box-shadow !default;\n\n$popover-header-font-size: $font-size-base !default;\n$popover-header-bg: shade-color($popover-bg, 6%) !default;\n$popover-header-color: var(--#{$prefix}heading-color) !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: $spacer !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $spacer !default;\n$popover-body-padding-x: $spacer !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color: $popover-bg !default;\n$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .5rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: $border-width !default;\n$toast-border-color: var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius: $border-radius !default;\n$toast-box-shadow: $box-shadow !default;\n$toast-spacing: $container-padding-x !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba($black, .05) !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size: .75em !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .35em !default;\n$badge-padding-x: .65em !default;\n$badge-border-radius: $border-radius !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding: $spacer !default;\n\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: var(--#{$prefix}border-color-translucent) !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: $box-shadow-sm !default;\n$modal-content-box-shadow-sm-up: $box-shadow !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n\n$modal-header-border-color: var(--#{$prefix}border-color) !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-header-padding-y: $modal-inner-padding !default;\n$modal-header-padding-x: $modal-inner-padding !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg: null !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n\n$modal-sm: 300px !default;\n$modal-md: 500px !default;\n$modal-lg: 800px !default;\n$modal-xl: 1140px !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// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y: $spacer !default;\n$alert-padding-x: $spacer !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$alert-bg-scale: -80% !default;\n$alert-border-scale: -70% !default;\n$alert-color-scale: 40% !default;\n$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n\n// Progress bars\n\n// scss-docs-start progress-variables\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: $box-shadow-inset !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: $primary !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color: $gray-900 !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: $spacer * .5 !default;\n$list-group-item-padding-x: $spacer !default;\n$list-group-item-bg-scale: -80% !default;\n$list-group-item-color-scale: 40% !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// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: $box-shadow-sm !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size: $small-font-size !default;\n$figure-caption-color: $gray-600 !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size: null !default;\n$breadcrumb-padding-y: 0 !default;\n$breadcrumb-padding-x: 0 !default;\n$breadcrumb-item-padding-x: .5rem !default;\n$breadcrumb-margin-bottom: 1rem !default;\n$breadcrumb-bg: null !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n$breadcrumb-divider-flipped: $breadcrumb-divider !default;\n$breadcrumb-border-radius: null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\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-opacity: .5 !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-active-opacity: 1 !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n$carousel-caption-padding-y: 1.25rem !default;\n$carousel-caption-spacer: 1.25rem !default;\n\n$carousel-control-icon-width: 2rem !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !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$carousel-dark-indicator-active-bg: $black !default;\n$carousel-dark-caption-color: $black !default;\n$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;\n// scss-docs-end carousel-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width: 1em !default;\n$btn-close-height: $btn-close-width !default;\n$btn-close-padding-x: .25em !default;\n$btn-close-padding-y: $btn-close-padding-x !default;\n$btn-close-color: $black !default;\n$btn-close-bg: url(\"data:image/svg+xml,\") !default;\n$btn-close-focus-shadow: $input-btn-focus-box-shadow !default;\n$btn-close-opacity: .5 !default;\n$btn-close-hover-opacity: .75 !default;\n$btn-close-focus-opacity: 1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y: $modal-inner-padding !default;\n$offcanvas-padding-x: $modal-inner-padding !default;\n$offcanvas-horizontal-width: 400px !default;\n$offcanvas-vertical-height: 30vh !default;\n$offcanvas-transition-duration: .3s !default;\n$offcanvas-border-color: $modal-content-border-color !default;\n$offcanvas-border-width: $modal-content-border-width !default;\n$offcanvas-title-line-height: $modal-title-line-height !default;\n$offcanvas-bg-color: $modal-content-bg !default;\n$offcanvas-color: $modal-content-color !default;\n$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg: $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size: $small-font-size !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .1875rem !default;\n$kbd-padding-x: .375rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: var(--#{$prefix}body-bg) !default;\n$kbd-bg: var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color: null !default;\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\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","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\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// number of 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 auto;\n width: divide(100%, $count);\n }\n}\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 @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\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 // `$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 // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // Use custom CSS variable name if present, otherwise default to `class`\n $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.min.css b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.min.css new file mode 100644 index 0000000..773f3f4 --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap Grid v5.2.0 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#0d6efd;--bs-link-hover-color:#0a58ca;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-left:calc(var(--bs-gutter-x) * .5);padding-right:calc(var(--bs-gutter-x) * .5);margin-left:auto;margin-right:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-left:calc(-.5 * var(--bs-gutter-x));margin-right:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-left:calc(var(--bs-gutter-x) * .5);padding-right:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-right:8.33333333%}.offset-2{margin-right:16.66666667%}.offset-3{margin-right:25%}.offset-4{margin-right:33.33333333%}.offset-5{margin-right:41.66666667%}.offset-6{margin-right:50%}.offset-7{margin-right:58.33333333%}.offset-8{margin-right:66.66666667%}.offset-9{margin-right:75%}.offset-10{margin-right:83.33333333%}.offset-11{margin-right:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-right:0}.offset-sm-1{margin-right:8.33333333%}.offset-sm-2{margin-right:16.66666667%}.offset-sm-3{margin-right:25%}.offset-sm-4{margin-right:33.33333333%}.offset-sm-5{margin-right:41.66666667%}.offset-sm-6{margin-right:50%}.offset-sm-7{margin-right:58.33333333%}.offset-sm-8{margin-right:66.66666667%}.offset-sm-9{margin-right:75%}.offset-sm-10{margin-right:83.33333333%}.offset-sm-11{margin-right:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-right:0}.offset-md-1{margin-right:8.33333333%}.offset-md-2{margin-right:16.66666667%}.offset-md-3{margin-right:25%}.offset-md-4{margin-right:33.33333333%}.offset-md-5{margin-right:41.66666667%}.offset-md-6{margin-right:50%}.offset-md-7{margin-right:58.33333333%}.offset-md-8{margin-right:66.66666667%}.offset-md-9{margin-right:75%}.offset-md-10{margin-right:83.33333333%}.offset-md-11{margin-right:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-right:0}.offset-lg-1{margin-right:8.33333333%}.offset-lg-2{margin-right:16.66666667%}.offset-lg-3{margin-right:25%}.offset-lg-4{margin-right:33.33333333%}.offset-lg-5{margin-right:41.66666667%}.offset-lg-6{margin-right:50%}.offset-lg-7{margin-right:58.33333333%}.offset-lg-8{margin-right:66.66666667%}.offset-lg-9{margin-right:75%}.offset-lg-10{margin-right:83.33333333%}.offset-lg-11{margin-right:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-right:0}.offset-xl-1{margin-right:8.33333333%}.offset-xl-2{margin-right:16.66666667%}.offset-xl-3{margin-right:25%}.offset-xl-4{margin-right:33.33333333%}.offset-xl-5{margin-right:41.66666667%}.offset-xl-6{margin-right:50%}.offset-xl-7{margin-right:58.33333333%}.offset-xl-8{margin-right:66.66666667%}.offset-xl-9{margin-right:75%}.offset-xl-10{margin-right:83.33333333%}.offset-xl-11{margin-right:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-right:0}.offset-xxl-1{margin-right:8.33333333%}.offset-xxl-2{margin-right:16.66666667%}.offset-xxl-3{margin-right:25%}.offset-xxl-4{margin-right:33.33333333%}.offset-xxl-5{margin-right:41.66666667%}.offset-xxl-6{margin-right:50%}.offset-xxl-7{margin-right:58.33333333%}.offset-xxl-8{margin-right:66.66666667%}.offset-xxl-9{margin-right:75%}.offset-xxl-10{margin-right:83.33333333%}.offset-xxl-11{margin-right:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!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}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.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-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}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-evenly{justify-content:space-evenly!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}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-left:0!important}.me-1{margin-left:.25rem!important}.me-2{margin-left:.5rem!important}.me-3{margin-left:1rem!important}.me-4{margin-left:1.5rem!important}.me-5{margin-left:3rem!important}.me-auto{margin-left:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-right:0!important}.ms-1{margin-right:.25rem!important}.ms-2{margin-right:.5rem!important}.ms-3{margin-right:1rem!important}.ms-4{margin-right:1.5rem!important}.ms-5{margin-right:3rem!important}.ms-auto{margin-right:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-left:0!important}.pe-1{padding-left:.25rem!important}.pe-2{padding-left:.5rem!important}.pe-3{padding-left:1rem!important}.pe-4{padding-left:1.5rem!important}.pe-5{padding-left:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-right:0!important}.ps-1{padding-right:.25rem!important}.ps-2{padding-right:.5rem!important}.ps-3{padding-right:1rem!important}.ps-4{padding-right:1.5rem!important}.ps-5{padding-right:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!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}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.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-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}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-sm-evenly{justify-content:space-evenly!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}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-left:0!important}.me-sm-1{margin-left:.25rem!important}.me-sm-2{margin-left:.5rem!important}.me-sm-3{margin-left:1rem!important}.me-sm-4{margin-left:1.5rem!important}.me-sm-5{margin-left:3rem!important}.me-sm-auto{margin-left:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-right:0!important}.ms-sm-1{margin-right:.25rem!important}.ms-sm-2{margin-right:.5rem!important}.ms-sm-3{margin-right:1rem!important}.ms-sm-4{margin-right:1.5rem!important}.ms-sm-5{margin-right:3rem!important}.ms-sm-auto{margin-right:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-left:0!important}.pe-sm-1{padding-left:.25rem!important}.pe-sm-2{padding-left:.5rem!important}.pe-sm-3{padding-left:1rem!important}.pe-sm-4{padding-left:1.5rem!important}.pe-sm-5{padding-left:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-right:0!important}.ps-sm-1{padding-right:.25rem!important}.ps-sm-2{padding-right:.5rem!important}.ps-sm-3{padding-right:1rem!important}.ps-sm-4{padding-right:1.5rem!important}.ps-sm-5{padding-right:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!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}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.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-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}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-md-evenly{justify-content:space-evenly!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}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-left:0!important}.me-md-1{margin-left:.25rem!important}.me-md-2{margin-left:.5rem!important}.me-md-3{margin-left:1rem!important}.me-md-4{margin-left:1.5rem!important}.me-md-5{margin-left:3rem!important}.me-md-auto{margin-left:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-right:0!important}.ms-md-1{margin-right:.25rem!important}.ms-md-2{margin-right:.5rem!important}.ms-md-3{margin-right:1rem!important}.ms-md-4{margin-right:1.5rem!important}.ms-md-5{margin-right:3rem!important}.ms-md-auto{margin-right:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-left:0!important}.pe-md-1{padding-left:.25rem!important}.pe-md-2{padding-left:.5rem!important}.pe-md-3{padding-left:1rem!important}.pe-md-4{padding-left:1.5rem!important}.pe-md-5{padding-left:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-right:0!important}.ps-md-1{padding-right:.25rem!important}.ps-md-2{padding-right:.5rem!important}.ps-md-3{padding-right:1rem!important}.ps-md-4{padding-right:1.5rem!important}.ps-md-5{padding-right:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!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}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.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-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}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-lg-evenly{justify-content:space-evenly!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}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-left:0!important}.me-lg-1{margin-left:.25rem!important}.me-lg-2{margin-left:.5rem!important}.me-lg-3{margin-left:1rem!important}.me-lg-4{margin-left:1.5rem!important}.me-lg-5{margin-left:3rem!important}.me-lg-auto{margin-left:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-right:0!important}.ms-lg-1{margin-right:.25rem!important}.ms-lg-2{margin-right:.5rem!important}.ms-lg-3{margin-right:1rem!important}.ms-lg-4{margin-right:1.5rem!important}.ms-lg-5{margin-right:3rem!important}.ms-lg-auto{margin-right:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-left:0!important}.pe-lg-1{padding-left:.25rem!important}.pe-lg-2{padding-left:.5rem!important}.pe-lg-3{padding-left:1rem!important}.pe-lg-4{padding-left:1.5rem!important}.pe-lg-5{padding-left:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-right:0!important}.ps-lg-1{padding-right:.25rem!important}.ps-lg-2{padding-right:.5rem!important}.ps-lg-3{padding-right:1rem!important}.ps-lg-4{padding-right:1.5rem!important}.ps-lg-5{padding-right:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!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}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.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-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}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-xl-evenly{justify-content:space-evenly!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}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-left:0!important}.me-xl-1{margin-left:.25rem!important}.me-xl-2{margin-left:.5rem!important}.me-xl-3{margin-left:1rem!important}.me-xl-4{margin-left:1.5rem!important}.me-xl-5{margin-left:3rem!important}.me-xl-auto{margin-left:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-right:0!important}.ms-xl-1{margin-right:.25rem!important}.ms-xl-2{margin-right:.5rem!important}.ms-xl-3{margin-right:1rem!important}.ms-xl-4{margin-right:1.5rem!important}.ms-xl-5{margin-right:3rem!important}.ms-xl-auto{margin-right:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-left:0!important}.pe-xl-1{padding-left:.25rem!important}.pe-xl-2{padding-left:.5rem!important}.pe-xl-3{padding-left:1rem!important}.pe-xl-4{padding-left:1.5rem!important}.pe-xl-5{padding-left:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-right:0!important}.ps-xl-1{padding-right:.25rem!important}.ps-xl-2{padding-right:.5rem!important}.ps-xl-3{padding-right:1rem!important}.ps-xl-4{padding-right:1.5rem!important}.ps-xl-5{padding-right:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-left:0!important}.me-xxl-1{margin-left:.25rem!important}.me-xxl-2{margin-left:.5rem!important}.me-xxl-3{margin-left:1rem!important}.me-xxl-4{margin-left:1.5rem!important}.me-xxl-5{margin-left:3rem!important}.me-xxl-auto{margin-left:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-right:0!important}.ms-xxl-1{margin-right:.25rem!important}.ms-xxl-2{margin-right:.5rem!important}.ms-xxl-3{margin-right:1rem!important}.ms-xxl-4{margin-right:1.5rem!important}.ms-xxl-5{margin-right:3rem!important}.ms-xxl-auto{margin-right:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-left:0!important}.pe-xxl-1{padding-left:.25rem!important}.pe-xxl-2{padding-left:.5rem!important}.pe-xxl-3{padding-left:1rem!important}.pe-xxl-4{padding-left:1.5rem!important}.pe-xxl-5{padding-left:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-right:0!important}.ps-xxl-1{padding-right:.25rem!important}.ps-xxl-2{padding-right:.5rem!important}.ps-xxl-3{padding-right:1rem!important}.ps-xxl-4{padding-right:1.5rem!important}.ps-xxl-5{padding-right:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!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}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap-grid.rtl.min.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.min.css.map b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.min.css.map new file mode 100644 index 0000000..36f8a53 --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-grid.rtl.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_root.scss","../../scss/vendor/_rfs.scss","../../scss/_containers.scss","dist/css/bootstrap-grid.rtl.css","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"AACE;;;;;ACDF,MAQI,UAAA,QAAA,YAAA,QAAA,YAAA,QAAA,UAAA,QAAA,SAAA,QAAA,YAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAAA,UAAA,QAAA,WAAA,KAAA,WAAA,KAAA,UAAA,QAAA,eAAA,QAIA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAIA,aAAA,QAAA,eAAA,QAAA,aAAA,QAAA,UAAA,QAAA,aAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAIA,iBAAA,EAAA,CAAA,GAAA,CAAA,IAAA,mBAAA,GAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,GAAA,CAAA,GAAA,cAAA,EAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,GAAA,CAAA,GAAA,CAAA,EAAA,gBAAA,GAAA,CAAA,EAAA,CAAA,GAAA,eAAA,GAAA,CAAA,GAAA,CAAA,IAAA,cAAA,EAAA,CAAA,EAAA,CAAA,GAGF,eAAA,GAAA,CAAA,GAAA,CAAA,IACA,eAAA,CAAA,CAAA,CAAA,CAAA,EACA,oBAAA,EAAA,CAAA,EAAA,CAAA,GACA,iBAAA,GAAA,CAAA,GAAA,CAAA,IAMA,qBAAA,SAAA,CAAA,aAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,oBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UACA,cAAA,2EAOA,sBAAA,0BC4PI,oBAAA,KD1PJ,sBAAA,IACA,sBAAA,IACA,gBAAA,QAIA,aAAA,KAIA,kBAAA,IACA,kBAAA,MACA,kBAAA,QACA,8BAAA,qBAEA,mBAAA,SACA,sBAAA,QACA,sBAAA,OACA,sBAAA,KACA,uBAAA,KACA,wBAAA,MAGA,gBAAA,QACA,sBAAA,QAEA,gBAAA,QAEA,kBAAA,QEjEA,WCsEF,iBAGA,cACA,cACA,cAHA,cADA,eC1EE,cAAA,OACA,cAAA,EACA,MAAA,KACA,aAAA,8BACA,cAAA,8BACA,YAAA,KACA,aAAA,KCsDE,yBH5CE,WAAA,cACE,UAAA,OG2CJ,yBH5CE,WAAA,cAAA,cACE,UAAA,OG2CJ,yBH5CE,WAAA,cAAA,cAAA,cACE,UAAA,OG2CJ,0BH5CE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QG2CJ,0BH5CE,WAAA,cAAA,cAAA,cAAA,cAAA,eACE,UAAA,QIfN,KCAA,cAAA,OACA,cAAA,EACA,QAAA,KACA,UAAA,KAEA,WAAA,8BACA,YAAA,+BACA,aAAA,+BDJE,OCSF,WAAA,WAIA,YAAA,EACA,MAAA,KACA,UAAA,KACA,aAAA,8BACA,cAAA,8BACA,WAAA,mBA+CI,KACE,KAAA,EAAA,EAAA,GAGF,iBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,cACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,UAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,UAxDV,aAAA,YAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,IAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,IAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,IAwDU,WAxDV,aAAA,aAwDU,WAxDV,aAAA,aAmEM,KJ0KR,MIxKU,cAAA,EAGF,KJ0KR,MIxKU,cAAA,EAPF,KJoLR,MIlLU,cAAA,QAGF,KJoLR,MIlLU,cAAA,QAPF,KJ8LR,MI5LU,cAAA,OAGF,KJ8LR,MI5LU,cAAA,OAPF,KJwMR,MItMU,cAAA,KAGF,KJwMR,MItMU,cAAA,KAPF,KJkNR,MIhNU,cAAA,OAGF,KJkNR,MIhNU,cAAA,OAPF,KJ4NR,MI1NU,cAAA,KAGF,KJ4NR,MI1NU,cAAA,KF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,aAAA,EAwDU,aAxDV,aAAA,YAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAmEM,QJ8VR,SI5VU,cAAA,EAGF,QJ6VR,SI3VU,cAAA,EAPF,QJsWR,SIpWU,cAAA,QAGF,QJqWR,SInWU,cAAA,QAPF,QJ8WR,SI5WU,cAAA,OAGF,QJ6WR,SI3WU,cAAA,OAPF,QJsXR,SIpXU,cAAA,KAGF,QJqXR,SInXU,cAAA,KAPF,QJ8XR,SI5XU,cAAA,OAGF,QJ6XR,SI3XU,cAAA,OAPF,QJsYR,SIpYU,cAAA,KAGF,QJqYR,SInYU,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,aAAA,EAwDU,aAxDV,aAAA,YAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAmEM,QJugBR,SIrgBU,cAAA,EAGF,QJsgBR,SIpgBU,cAAA,EAPF,QJ+gBR,SI7gBU,cAAA,QAGF,QJ8gBR,SI5gBU,cAAA,QAPF,QJuhBR,SIrhBU,cAAA,OAGF,QJshBR,SIphBU,cAAA,OAPF,QJ+hBR,SI7hBU,cAAA,KAGF,QJ8hBR,SI5hBU,cAAA,KAPF,QJuiBR,SIriBU,cAAA,OAGF,QJsiBR,SIpiBU,cAAA,OAPF,QJ+iBR,SI7iBU,cAAA,KAGF,QJ8iBR,SI5iBU,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,aAAA,EAwDU,aAxDV,aAAA,YAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAmEM,QJgrBR,SI9qBU,cAAA,EAGF,QJ+qBR,SI7qBU,cAAA,EAPF,QJwrBR,SItrBU,cAAA,QAGF,QJurBR,SIrrBU,cAAA,QAPF,QJgsBR,SI9rBU,cAAA,OAGF,QJ+rBR,SI7rBU,cAAA,OAPF,QJwsBR,SItsBU,cAAA,KAGF,QJusBR,SIrsBU,cAAA,KAPF,QJgtBR,SI9sBU,cAAA,OAGF,QJ+sBR,SI7sBU,cAAA,OAPF,QJwtBR,SIttBU,cAAA,KAGF,QJutBR,SIrtBU,cAAA,MF1DN,0BEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,aAAA,EAwDU,aAxDV,aAAA,YAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAmEM,QJy1BR,SIv1BU,cAAA,EAGF,QJw1BR,SIt1BU,cAAA,EAPF,QJi2BR,SI/1BU,cAAA,QAGF,QJg2BR,SI91BU,cAAA,QAPF,QJy2BR,SIv2BU,cAAA,OAGF,QJw2BR,SIt2BU,cAAA,OAPF,QJi3BR,SI/2BU,cAAA,KAGF,QJg3BR,SI92BU,cAAA,KAPF,QJy3BR,SIv3BU,cAAA,OAGF,QJw3BR,SIt3BU,cAAA,OAPF,QJi4BR,SI/3BU,cAAA,KAGF,QJg4BR,SI93BU,cAAA,MF1DN,0BEUE,SACE,KAAA,EAAA,EAAA,GAGF,qBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,cAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,cAxDV,aAAA,EAwDU,cAxDV,aAAA,YAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,IAwDU,eAxDV,aAAA,aAwDU,eAxDV,aAAA,aAmEM,SJkgCR,UIhgCU,cAAA,EAGF,SJigCR,UI//BU,cAAA,EAPF,SJ0gCR,UIxgCU,cAAA,QAGF,SJygCR,UIvgCU,cAAA,QAPF,SJkhCR,UIhhCU,cAAA,OAGF,SJihCR,UI/gCU,cAAA,OAPF,SJ0hCR,UIxhCU,cAAA,KAGF,SJyhCR,UIvhCU,cAAA,KAPF,SJkiCR,UIhiCU,cAAA,OAGF,SJiiCR,UI/hCU,cAAA,OAPF,SJ0iCR,UIxiCU,cAAA,KAGF,SJyiCR,UIviCU,cAAA,MCvDF,UAOI,QAAA,iBAPJ,gBAOI,QAAA,uBAPJ,SAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,SAOI,QAAA,gBAPJ,aAOI,QAAA,oBAPJ,cAOI,QAAA,qBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,QAOI,QAAA,eAPJ,WAOI,KAAA,EAAA,EAAA,eAPJ,UAOI,eAAA,cAPJ,aAOI,eAAA,iBAPJ,kBAOI,eAAA,sBAPJ,qBAOI,eAAA,yBAPJ,aAOI,UAAA,YAPJ,aAOI,UAAA,YAPJ,eAOI,YAAA,YAPJ,eAOI,YAAA,YAPJ,WAOI,UAAA,eAPJ,aAOI,UAAA,iBAPJ,mBAOI,UAAA,uBAPJ,uBAOI,gBAAA,qBAPJ,qBAOI,gBAAA,mBAPJ,wBAOI,gBAAA,iBAPJ,yBAOI,gBAAA,wBAPJ,wBAOI,gBAAA,uBAPJ,wBAOI,gBAAA,uBAPJ,mBAOI,YAAA,qBAPJ,iBAOI,YAAA,mBAPJ,oBAOI,YAAA,iBAPJ,sBAOI,YAAA,mBAPJ,qBAOI,YAAA,kBAPJ,qBAOI,cAAA,qBAPJ,mBAOI,cAAA,mBAPJ,sBAOI,cAAA,iBAPJ,uBAOI,cAAA,wBAPJ,sBAOI,cAAA,uBAPJ,uBAOI,cAAA,kBAPJ,iBAOI,WAAA,eAPJ,kBAOI,WAAA,qBAPJ,gBAOI,WAAA,mBAPJ,mBAOI,WAAA,iBAPJ,qBAOI,WAAA,mBAPJ,oBAOI,WAAA,kBAPJ,aAOI,MAAA,aAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,KAOI,OAAA,YAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,gBAPJ,KAOI,OAAA,eAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,MAOI,YAAA,YAAA,aAAA,YAPJ,MAOI,YAAA,iBAAA,aAAA,iBAPJ,MAOI,YAAA,gBAAA,aAAA,gBAPJ,MAOI,YAAA,eAAA,aAAA,eAPJ,MAOI,YAAA,iBAAA,aAAA,iBAPJ,MAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,MAOI,WAAA,YAAA,cAAA,YAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,gBAAA,cAAA,gBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,YAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,gBAPJ,MAOI,WAAA,eAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,eAPJ,SAOI,WAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,SAOI,YAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,SAOI,cAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,SAOI,aAAA,eAPJ,KAOI,QAAA,YAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,gBAPJ,KAOI,QAAA,eAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,eAPJ,MAOI,aAAA,YAAA,cAAA,YAPJ,MAOI,aAAA,iBAAA,cAAA,iBAPJ,MAOI,aAAA,gBAAA,cAAA,gBAPJ,MAOI,aAAA,eAAA,cAAA,eAPJ,MAOI,aAAA,iBAAA,cAAA,iBAPJ,MAOI,aAAA,eAAA,cAAA,eAPJ,MAOI,YAAA,YAAA,eAAA,YAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,gBAAA,eAAA,gBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,MAOI,eAAA,YAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,gBAPJ,MAOI,eAAA,eAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,YAAA,YAAA,aAAA,YAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,gBAAA,aAAA,gBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,YAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,aAAA,YAAA,cAAA,YAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,gBAAA,cAAA,gBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,YAAA,YAAA,aAAA,YAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,gBAAA,aAAA,gBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,YAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,aAAA,YAAA,cAAA,YAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,gBAAA,cAAA,gBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,YAAA,YAAA,aAAA,YAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,gBAAA,aAAA,gBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,YAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,aAAA,YAAA,cAAA,YAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,gBAAA,cAAA,gBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBHVR,0BGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,YAAA,YAAA,aAAA,YAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,gBAAA,aAAA,gBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,YAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,aAAA,YAAA,cAAA,YAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,gBAAA,cAAA,gBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBHVR,0BGGI,cAOI,QAAA,iBAPJ,oBAOI,QAAA,uBAPJ,aAOI,QAAA,gBAPJ,YAOI,QAAA,eAPJ,aAOI,QAAA,gBAPJ,iBAOI,QAAA,oBAPJ,kBAOI,QAAA,qBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,YAOI,QAAA,eAPJ,eAOI,KAAA,EAAA,EAAA,eAPJ,cAOI,eAAA,cAPJ,iBAOI,eAAA,iBAPJ,sBAOI,eAAA,sBAPJ,yBAOI,eAAA,yBAPJ,iBAOI,UAAA,YAPJ,iBAOI,UAAA,YAPJ,mBAOI,YAAA,YAPJ,mBAOI,YAAA,YAPJ,eAOI,UAAA,eAPJ,iBAOI,UAAA,iBAPJ,uBAOI,UAAA,uBAPJ,2BAOI,gBAAA,qBAPJ,yBAOI,gBAAA,mBAPJ,4BAOI,gBAAA,iBAPJ,6BAOI,gBAAA,wBAPJ,4BAOI,gBAAA,uBAPJ,4BAOI,gBAAA,uBAPJ,uBAOI,YAAA,qBAPJ,qBAOI,YAAA,mBAPJ,wBAOI,YAAA,iBAPJ,0BAOI,YAAA,mBAPJ,yBAOI,YAAA,kBAPJ,yBAOI,cAAA,qBAPJ,uBAOI,cAAA,mBAPJ,0BAOI,cAAA,iBAPJ,2BAOI,cAAA,wBAPJ,0BAOI,cAAA,uBAPJ,2BAOI,cAAA,kBAPJ,qBAOI,WAAA,eAPJ,sBAOI,WAAA,qBAPJ,oBAOI,WAAA,mBAPJ,uBAOI,WAAA,iBAPJ,yBAOI,WAAA,mBAPJ,wBAOI,WAAA,kBAPJ,iBAOI,MAAA,aAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,gBAOI,MAAA,YAPJ,SAOI,OAAA,YAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,gBAPJ,SAOI,OAAA,eAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,eAPJ,YAOI,OAAA,eAPJ,UAOI,YAAA,YAAA,aAAA,YAPJ,UAOI,YAAA,iBAAA,aAAA,iBAPJ,UAOI,YAAA,gBAAA,aAAA,gBAPJ,UAOI,YAAA,eAAA,aAAA,eAPJ,UAOI,YAAA,iBAAA,aAAA,iBAPJ,UAOI,YAAA,eAAA,aAAA,eAPJ,aAOI,YAAA,eAAA,aAAA,eAPJ,UAOI,WAAA,YAAA,cAAA,YAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,gBAAA,cAAA,gBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,aAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,YAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,gBAPJ,UAOI,WAAA,eAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,eAPJ,aAOI,WAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,aAOI,YAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,aAOI,cAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,aAOI,aAAA,eAPJ,SAOI,QAAA,YAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,gBAPJ,SAOI,QAAA,eAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,eAPJ,UAOI,aAAA,YAAA,cAAA,YAPJ,UAOI,aAAA,iBAAA,cAAA,iBAPJ,UAOI,aAAA,gBAAA,cAAA,gBAPJ,UAOI,aAAA,eAAA,cAAA,eAPJ,UAOI,aAAA,iBAAA,cAAA,iBAPJ,UAOI,aAAA,eAAA,cAAA,eAPJ,UAOI,YAAA,YAAA,eAAA,YAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,gBAAA,eAAA,gBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,UAOI,eAAA,YAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,gBAPJ,UAOI,eAAA,eAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBCnCZ,aD4BQ,gBAOI,QAAA,iBAPJ,sBAOI,QAAA,uBAPJ,eAOI,QAAA,gBAPJ,cAOI,QAAA,eAPJ,eAOI,QAAA,gBAPJ,mBAOI,QAAA,oBAPJ,oBAOI,QAAA,qBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,cAOI,QAAA","sourcesContent":["@mixin bsBanner($file, $suffix:\"\") {\n /*!\n * Bootstrap #{$file} v5.2.0 (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\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{$font-family-base};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n --#{$prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n --#{$prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-hover-color: #{$link-hover-color};\n\n --#{$prefix}code-color: #{$code-color};\n\n --#{$prefix}highlight-bg: #{$mark-bg};\n}\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start 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 values 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// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\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-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\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-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 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// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\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-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n }\n @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + ' ' + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + ' ' + $value;\n }\n\n @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\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($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluidVal: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluidVal {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\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 @include _rfs-media-query-rule {\n #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-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 * Bootstrap Grid v5.2.0 (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:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-2xl: 2rem;\n --bs-border-radius-pill: 50rem;\n --bs-link-color: #0d6efd;\n --bs-link-hover-color: #0a58ca;\n --bs-code-color: #d63384;\n --bs-highlight-bg: #fff3cd;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n margin-left: auto;\n margin-right: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-right: 8.33333333%;\n}\n\n.offset-2 {\n margin-right: 16.66666667%;\n}\n\n.offset-3 {\n margin-right: 25%;\n}\n\n.offset-4 {\n margin-right: 33.33333333%;\n}\n\n.offset-5 {\n margin-right: 41.66666667%;\n}\n\n.offset-6 {\n margin-right: 50%;\n}\n\n.offset-7 {\n margin-right: 58.33333333%;\n}\n\n.offset-8 {\n margin-right: 66.66666667%;\n}\n\n.offset-9 {\n margin-right: 75%;\n}\n\n.offset-10 {\n margin-right: 83.33333333%;\n}\n\n.offset-11 {\n margin-right: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-right: 0;\n }\n .offset-sm-1 {\n margin-right: 8.33333333%;\n }\n .offset-sm-2 {\n margin-right: 16.66666667%;\n }\n .offset-sm-3 {\n margin-right: 25%;\n }\n .offset-sm-4 {\n margin-right: 33.33333333%;\n }\n .offset-sm-5 {\n margin-right: 41.66666667%;\n }\n .offset-sm-6 {\n margin-right: 50%;\n }\n .offset-sm-7 {\n margin-right: 58.33333333%;\n }\n .offset-sm-8 {\n margin-right: 66.66666667%;\n }\n .offset-sm-9 {\n margin-right: 75%;\n }\n .offset-sm-10 {\n margin-right: 83.33333333%;\n }\n .offset-sm-11 {\n margin-right: 91.66666667%;\n }\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-right: 0;\n }\n .offset-md-1 {\n margin-right: 8.33333333%;\n }\n .offset-md-2 {\n margin-right: 16.66666667%;\n }\n .offset-md-3 {\n margin-right: 25%;\n }\n .offset-md-4 {\n margin-right: 33.33333333%;\n }\n .offset-md-5 {\n margin-right: 41.66666667%;\n }\n .offset-md-6 {\n margin-right: 50%;\n }\n .offset-md-7 {\n margin-right: 58.33333333%;\n }\n .offset-md-8 {\n margin-right: 66.66666667%;\n }\n .offset-md-9 {\n margin-right: 75%;\n }\n .offset-md-10 {\n margin-right: 83.33333333%;\n }\n .offset-md-11 {\n margin-right: 91.66666667%;\n }\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-right: 0;\n }\n .offset-lg-1 {\n margin-right: 8.33333333%;\n }\n .offset-lg-2 {\n margin-right: 16.66666667%;\n }\n .offset-lg-3 {\n margin-right: 25%;\n }\n .offset-lg-4 {\n margin-right: 33.33333333%;\n }\n .offset-lg-5 {\n margin-right: 41.66666667%;\n }\n .offset-lg-6 {\n margin-right: 50%;\n }\n .offset-lg-7 {\n margin-right: 58.33333333%;\n }\n .offset-lg-8 {\n margin-right: 66.66666667%;\n }\n .offset-lg-9 {\n margin-right: 75%;\n }\n .offset-lg-10 {\n margin-right: 83.33333333%;\n }\n .offset-lg-11 {\n margin-right: 91.66666667%;\n }\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-right: 0;\n }\n .offset-xl-1 {\n margin-right: 8.33333333%;\n }\n .offset-xl-2 {\n margin-right: 16.66666667%;\n }\n .offset-xl-3 {\n margin-right: 25%;\n }\n .offset-xl-4 {\n margin-right: 33.33333333%;\n }\n .offset-xl-5 {\n margin-right: 41.66666667%;\n }\n .offset-xl-6 {\n margin-right: 50%;\n }\n .offset-xl-7 {\n margin-right: 58.33333333%;\n }\n .offset-xl-8 {\n margin-right: 66.66666667%;\n }\n .offset-xl-9 {\n margin-right: 75%;\n }\n .offset-xl-10 {\n margin-right: 83.33333333%;\n }\n .offset-xl-11 {\n margin-right: 91.66666667%;\n }\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-right: 0;\n }\n .offset-xxl-1 {\n margin-right: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-right: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-right: 25%;\n }\n .offset-xxl-4 {\n margin-right: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-right: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-right: 50%;\n }\n .offset-xxl-7 {\n margin-right: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-right: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-right: 75%;\n }\n .offset-xxl-10 {\n margin-right: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-right: 91.66666667%;\n }\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n}\n\n.mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n}\n\n.mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n}\n\n.mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n}\n\n.mx-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n}\n\n.mx-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-left: 0 !important;\n}\n\n.me-1 {\n margin-left: 0.25rem !important;\n}\n\n.me-2 {\n margin-left: 0.5rem !important;\n}\n\n.me-3 {\n margin-left: 1rem !important;\n}\n\n.me-4 {\n margin-left: 1.5rem !important;\n}\n\n.me-5 {\n margin-left: 3rem !important;\n}\n\n.me-auto {\n margin-left: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-right: 0 !important;\n}\n\n.ms-1 {\n margin-right: 0.25rem !important;\n}\n\n.ms-2 {\n margin-right: 0.5rem !important;\n}\n\n.ms-3 {\n margin-right: 1rem !important;\n}\n\n.ms-4 {\n margin-right: 1.5rem !important;\n}\n\n.ms-5 {\n margin-right: 3rem !important;\n}\n\n.ms-auto {\n margin-right: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n}\n\n.px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n}\n\n.px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n}\n\n.px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n}\n\n.px-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-left: 0 !important;\n}\n\n.pe-1 {\n padding-left: 0.25rem !important;\n}\n\n.pe-2 {\n padding-left: 0.5rem !important;\n}\n\n.pe-3 {\n padding-left: 1rem !important;\n}\n\n.pe-4 {\n padding-left: 1.5rem !important;\n}\n\n.pe-5 {\n padding-left: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-right: 0 !important;\n}\n\n.ps-1 {\n padding-right: 0.25rem !important;\n}\n\n.ps-2 {\n padding-right: 0.5rem !important;\n}\n\n.ps-3 {\n padding-right: 1rem !important;\n}\n\n.ps-4 {\n padding-right: 1.5rem !important;\n}\n\n.ps-5 {\n padding-right: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-sm-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-left: 0 !important;\n }\n .me-sm-1 {\n margin-left: 0.25rem !important;\n }\n .me-sm-2 {\n margin-left: 0.5rem !important;\n }\n .me-sm-3 {\n margin-left: 1rem !important;\n }\n .me-sm-4 {\n margin-left: 1.5rem !important;\n }\n .me-sm-5 {\n margin-left: 3rem !important;\n }\n .me-sm-auto {\n margin-left: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-right: 0 !important;\n }\n .ms-sm-1 {\n margin-right: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-right: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-right: 1rem !important;\n }\n .ms-sm-4 {\n margin-right: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-right: 3rem !important;\n }\n .ms-sm-auto {\n margin-right: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-sm-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-sm-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-sm-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-sm-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-sm-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-left: 0 !important;\n }\n .pe-sm-1 {\n padding-left: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-left: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-left: 1rem !important;\n }\n .pe-sm-4 {\n padding-left: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-left: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-right: 0 !important;\n }\n .ps-sm-1 {\n padding-right: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-right: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-right: 1rem !important;\n }\n .ps-sm-4 {\n padding-right: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-md-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-md-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-md-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-md-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-md-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-md-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-left: 0 !important;\n }\n .me-md-1 {\n margin-left: 0.25rem !important;\n }\n .me-md-2 {\n margin-left: 0.5rem !important;\n }\n .me-md-3 {\n margin-left: 1rem !important;\n }\n .me-md-4 {\n margin-left: 1.5rem !important;\n }\n .me-md-5 {\n margin-left: 3rem !important;\n }\n .me-md-auto {\n margin-left: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-right: 0 !important;\n }\n .ms-md-1 {\n margin-right: 0.25rem !important;\n }\n .ms-md-2 {\n margin-right: 0.5rem !important;\n }\n .ms-md-3 {\n margin-right: 1rem !important;\n }\n .ms-md-4 {\n margin-right: 1.5rem !important;\n }\n .ms-md-5 {\n margin-right: 3rem !important;\n }\n .ms-md-auto {\n margin-right: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-md-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-md-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-md-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-md-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-md-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-left: 0 !important;\n }\n .pe-md-1 {\n padding-left: 0.25rem !important;\n }\n .pe-md-2 {\n padding-left: 0.5rem !important;\n }\n .pe-md-3 {\n padding-left: 1rem !important;\n }\n .pe-md-4 {\n padding-left: 1.5rem !important;\n }\n .pe-md-5 {\n padding-left: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-right: 0 !important;\n }\n .ps-md-1 {\n padding-right: 0.25rem !important;\n }\n .ps-md-2 {\n padding-right: 0.5rem !important;\n }\n .ps-md-3 {\n padding-right: 1rem !important;\n }\n .ps-md-4 {\n padding-right: 1.5rem !important;\n }\n .ps-md-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-lg-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-left: 0 !important;\n }\n .me-lg-1 {\n margin-left: 0.25rem !important;\n }\n .me-lg-2 {\n margin-left: 0.5rem !important;\n }\n .me-lg-3 {\n margin-left: 1rem !important;\n }\n .me-lg-4 {\n margin-left: 1.5rem !important;\n }\n .me-lg-5 {\n margin-left: 3rem !important;\n }\n .me-lg-auto {\n margin-left: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-right: 0 !important;\n }\n .ms-lg-1 {\n margin-right: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-right: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-right: 1rem !important;\n }\n .ms-lg-4 {\n margin-right: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-right: 3rem !important;\n }\n .ms-lg-auto {\n margin-right: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-lg-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-lg-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-lg-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-lg-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-lg-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-left: 0 !important;\n }\n .pe-lg-1 {\n padding-left: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-left: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-left: 1rem !important;\n }\n .pe-lg-4 {\n padding-left: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-left: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-right: 0 !important;\n }\n .ps-lg-1 {\n padding-right: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-right: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-right: 1rem !important;\n }\n .ps-lg-4 {\n padding-right: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-xl-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-left: 0 !important;\n }\n .me-xl-1 {\n margin-left: 0.25rem !important;\n }\n .me-xl-2 {\n margin-left: 0.5rem !important;\n }\n .me-xl-3 {\n margin-left: 1rem !important;\n }\n .me-xl-4 {\n margin-left: 1.5rem !important;\n }\n .me-xl-5 {\n margin-left: 3rem !important;\n }\n .me-xl-auto {\n margin-left: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-right: 0 !important;\n }\n .ms-xl-1 {\n margin-right: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-right: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-right: 1rem !important;\n }\n .ms-xl-4 {\n margin-right: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-right: 3rem !important;\n }\n .ms-xl-auto {\n margin-right: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-xl-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-xl-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-xl-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-xl-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-xl-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-left: 0 !important;\n }\n .pe-xl-1 {\n padding-left: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-left: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-left: 1rem !important;\n }\n .pe-xl-4 {\n padding-left: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-left: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-right: 0 !important;\n }\n .ps-xl-1 {\n padding-right: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-right: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-right: 1rem !important;\n }\n .ps-xl-4 {\n padding-right: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-xxl-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-xxl-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-xxl-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-left: 0 !important;\n }\n .me-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-left: 1rem !important;\n }\n .me-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-left: 3rem !important;\n }\n .me-xxl-auto {\n margin-left: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-right: 0 !important;\n }\n .ms-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-right: 1rem !important;\n }\n .ms-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-right: 3rem !important;\n }\n .ms-xxl-auto {\n margin-right: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-xxl-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-xxl-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-left: 0 !important;\n }\n .pe-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-left: 1rem !important;\n }\n .pe-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-left: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-right: 0 !important;\n }\n .ps-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-right: 1rem !important;\n }\n .ps-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-right: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.rtl.css.map */","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-right: auto;\n margin-left: auto;\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, xxl: 1400px)\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, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($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, xxl: 1400px))\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.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `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(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .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, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\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 $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $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($next, $breakpoints) {\n @content;\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 @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\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","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\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// number of 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 auto;\n width: divide(100%, $count);\n }\n}\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 @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\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 // `$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 // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // Use custom CSS variable name if present, otherwise default to `class`\n $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-reboot.css b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-reboot.css new file mode 100644 index 0000000..897c2be --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-reboot.css @@ -0,0 +1,488 @@ +/*! + * Bootstrap Reboot v5.2.0 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #0d6efd; + --bs-link-hover-color: #0a58ca; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: 1px solid; + opacity: 0.25; +} + +h6, h5, h4, h3, h2, h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + h1 { + font-size: 2.5rem; + } +} + +h2 { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + h2 { + font-size: 2rem; + } +} + +h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3 { + font-size: 1.75rem; + } +} + +h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4 { + font-size: 1.5rem; + } +} + +h5 { + font-size: 1.25rem; +} + +h6 { + font-size: 1rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +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: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 0.875em; +} + +mark { + padding: 0.1875em; + background-color: var(--bs-highlight-bg); +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: var(--bs-link-color); + text-decoration: underline; +} +a:hover { + color: var(--bs-link-hover-color); +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; +} +kbd kbd { + padding: 0; + font-size: 1em; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +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, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +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; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +/*# sourceMappingURL=bootstrap-reboot.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-reboot.css.map b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-reboot.css.map new file mode 100644 index 0000000..38f52e9 --- /dev/null +++ b/src/main/resources/static/vendor/bootstrap-5.2.0-dist/css/bootstrap-reboot.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_root.scss","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_border-radius.scss"],"names":[],"mappings":"AACE;;;;;EAAA;ACDF;EAQI,kBAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,kBAAA;EAAA,iBAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,mBAAA;EAAA,kBAAA;EAAA,kBAAA;EAAA,gBAAA;EAAA,gBAAA;EAAA,kBAAA;EAAA,uBAAA;EAIA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAIA,qBAAA;EAAA,uBAAA;EAAA,qBAAA;EAAA,kBAAA;EAAA,qBAAA;EAAA,oBAAA;EAAA,mBAAA;EAAA,kBAAA;EAIA,8BAAA;EAAA,iCAAA;EAAA,6BAAA;EAAA,2BAAA;EAAA,6BAAA;EAAA,4BAAA;EAAA,6BAAA;EAAA,yBAAA;EAGF,6BAAA;EACA,uBAAA;EACA,+BAAA;EACA,+BAAA;EAMA,qNAAA;EACA,yGAAA;EACA,yFAAA;EAOA,gDAAA;EC4PI,yBALI;EDrPR,0BAAA;EACA,0BAAA;EACA,wBAAA;EAIA,kBAAA;EAIA,sBAAA;EACA,wBAAA;EACA,0BAAA;EACA,mDAAA;EAEA,4BAAA;EACA,8BAAA;EACA,6BAAA;EACA,2BAAA;EACA,4BAAA;EACA,8BAAA;EAGA,wBAAA;EACA,8BAAA;EAEA,wBAAA;EAEA,0BAAA;AEEF;;AC1DA;;;EAGE,sBAAA;AD6DF;;AC9CI;EANJ;IAOM,uBAAA;EDkDJ;AACF;;ACrCA;EACE,SAAA;EACA,uCAAA;EFmPI,mCALI;EE5OR,uCAAA;EACA,uCAAA;EACA,2BAAA;EACA,qCAAA;EACA,mCAAA;EACA,8BAAA;EACA,6CAAA;ADwCF;;AC/BA;EACE,cAAA;EACA,cCijB4B;EDhjB5B,SAAA;EACA,qBAAA;EACA,aCujB4B;AFrhB9B;;ACxBA;EACE,aAAA;EACA,qBCwf4B;EDrf5B,gBCwf4B;EDvf5B,gBCwf4B;AF/d9B;;ACrBA;EF6MQ,iCAAA;ACpLR;ADkBI;EE3CJ;IFoNQ,iBAAA;ECvLN;AACF;;ACzBA;EFwMQ,iCAAA;AC3KR;ADSI;EEtCJ;IF+MQ,eAAA;EC9KN;AACF;;AC7BA;EFmMQ,+BAAA;AClKR;ADAI;EEjCJ;IF0MQ,kBAAA;ECrKN;AACF;;ACjCA;EF8LQ,iCAAA;ACzJR;ADTI;EE5BJ;IFqMQ,iBAAA;EC5JN;AACF;;ACrCA;EFqLM,kBALI;ACvIV;;ACpCA;EFgLM,eALI;ACnIV;;AC7BA;EACE,aAAA;EACA,mBCmS0B;AFnQ5B;;ACtBA;EACE,yCAAA;EAAA,iCAAA;EACA,YAAA;EACA,sCAAA;EAAA,8BAAA;ADyBF;;ACnBA;EACE,mBAAA;EACA,kBAAA;EACA,oBAAA;ADsBF;;AChBA;;EAEE,kBAAA;ADmBF;;AChBA;;;EAGE,aAAA;EACA,mBAAA;ADmBF;;AChBA;;;;EAIE,gBAAA;ADmBF;;AChBA;EACE,gBC6X4B;AF1W9B;;ACdA;EACE,qBAAA;EACA,cAAA;ADiBF;;ACXA;EACE,gBAAA;ADcF;;ACNA;;EAEE,mBCsW4B;AF7V9B;;ACDA;EFmFM,kBALI;ACzEV;;ACEA;EACE,iBC+a4B;ED9a5B,wCAAA;ADCF;;ACQA;;EAEE,kBAAA;EF+DI,iBALI;EExDR,cAAA;EACA,wBAAA;ADLF;;ACQA;EAAM,eAAA;ADJN;;ACKA;EAAM,WAAA;ADDN;;ACMA;EACE,2BAAA;EACA,0BCqKwC;AFxK1C;ACKE;EACE,iCAAA;ADHJ;;ACcE;EAEE,cAAA;EACA,qBAAA;ADZJ;;ACmBA;;;;EAIE,qCCkR4B;EH7PxB,cALI;AC/BV;;ACuBA;EACE,cAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;EFSI,kBALI;ACvBV;ACwBE;EFII,kBALI;EEGN,cAAA;EACA,kBAAA;ADtBJ;;AC0BA;EFHM,kBALI;EEUR,2BAAA;EACA,qBAAA;ADvBF;AC0BE;EACE,cAAA;ADxBJ;;AC4BA;EACE,2BAAA;EFfI,kBALI;EEsBR,wBCsyCkC;EDryClC,sCCsyCkC;EC1kDhC,sBAAA;AH4QJ;AC2BE;EACE,UAAA;EFtBE,cALI;ACGV;;ACmCA;EACE,gBAAA;ADhCF;;ACsCA;;EAEE,sBAAA;ADnCF;;AC2CA;EACE,oBAAA;EACA,yBAAA;ADxCF;;AC2CA;EACE,mBCsT4B;EDrT5B,sBCqT4B;EDpT5B,cCjVS;EDkVT,gBAAA;ADxCF;;AC+CA;EAEE,mBAAA;EACA,gCAAA;AD7CF;;ACgDA;;;;;;EAME,qBAAA;EACA,mBAAA;EACA,eAAA;AD7CF;;ACqDA;EACE,qBAAA;ADlDF;;ACwDA;EAEE,gBAAA;ADtDF;;AC8DA;EACE,UAAA;AD3DF;;ACgEA;;;;;EAKE,SAAA;EACA,oBAAA;EFrHI,kBALI;EE4HR,oBAAA;AD7DF;;ACiEA;;EAEE,oBAAA;AD9DF;;ACmEA;EACE,eAAA;ADhEF;;ACmEA;EAGE,iBAAA;ADlEF;ACqEE;EACE,UAAA;ADnEJ;;AC0EA;EACE,wBAAA;ADvEF;;AC+EA;;;;EAIE,0BAAA;AD5EF;AC+EI;;;;EACE,eAAA;AD1EN;;ACiFA;EACE,UAAA;EACA,kBAAA;AD9EF;;ACmFA;EACE,gBAAA;ADhFF;;AC0FA;EACE,YAAA;EACA,UAAA;EACA,SAAA;EACA,SAAA;ADvFF;;AC+FA;EACE,WAAA;EACA,WAAA;EACA,UAAA;EACA,qBC8I4B;EHxVtB,iCAAA;EE6MN,oBAAA;AD7FF;ADlRI;EEwWJ;IF/LQ,iBAAA;EC6GN;AACF;AC0FE;EACE,WAAA;ADxFJ;;AC+FA;;;;;;;EAOE,UAAA;AD5FF;;AC+FA;EACE,YAAA;AD5FF;;ACqGA;EACE,oBAAA;EACA,6BAAA;ADlGF;;AC0GA;;;;;;;CAAA;AAWA;EACE,wBAAA;AD1GF;;AC+GA;EACE,UAAA;AD5GF;;ACmHA;EACE,aAAA;EACA,0BAAA;ADhHF;;AC8GA;EACE,aAAA;EACA,0BAAA;ADhHF;;ACqHA;EACE,qBAAA;ADlHF;;ACuHA;EACE,SAAA;ADpHF;;AC2HA;EACE,kBAAA;EACA,eAAA;ADxHF;;ACgIA;EACE,wBAAA;AD7HF;;ACqIA;EACE,wBAAA;ADlIF","file":"bootstrap-reboot.css","sourcesContent":["@mixin bsBanner($file, $suffix:\"\") {\n /*!\n * Bootstrap #{$file} v5.2.0 (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\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{$font-family-base};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n --#{$prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n --#{$prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-hover-color: #{$link-hover-color};\n\n --#{$prefix}code-color: #{$code-color};\n\n --#{$prefix}highlight-bg: #{$mark-bg};\n}\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start 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 values 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// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\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-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\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-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 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// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\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-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n }\n @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + ' ' + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + ' ' + $value;\n }\n\n @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\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($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluidVal: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluidVal {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\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 @include _rfs-media-query-rule {\n #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","/*!\n * Bootstrap Reboot v5.2.0 (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:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-2xl: 2rem;\n --bs-border-radius-pill: 50rem;\n --bs-link-color: #0d6efd;\n --bs-link-hover-color: #0a58ca;\n --bs-code-color: #d63384;\n --bs-highlight-bg: #fff3cd;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: 1px solid;\n opacity: 0.25;\n}\n\nh6, h5, h4, h3, h2, h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1 {\n font-size: 2.5rem;\n }\n}\n\nh2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2 {\n font-size: 2rem;\n }\n}\n\nh3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3 {\n font-size: 1.75rem;\n }\n}\n\nh4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4 {\n font-size: 1.5rem;\n }\n}\n\nh5 {\n font-size: 1.25rem;\n}\n\nh6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\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: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 0.875em;\n}\n\nmark {\n padding: 0.1875em;\n background-color: var(--bs-highlight-bg);\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: var(--bs-link-color);\n text-decoration: underline;\n}\na:hover {\n color: var(--bs-link-hover-color);\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: var(--bs-code-color);\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.1875rem 0.375rem;\n font-size: 0.875em;\n color: var(--bs-body-bg);\n background-color: var(--bs-body-color);\n border-radius: 0.25rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: #6c757d;\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n outline-offset: -2px;\n -webkit-appearance: textfield;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\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// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\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. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\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\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: var(--#{$prefix}link-color);\n text-decoration: $link-decoration;\n\n &:hover {\n color: var(--#{$prefix}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 &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\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\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}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\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\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` 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\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\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\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`