diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.Rmd b/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.Rmd new file mode 100644 index 0000000..2af43e6 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.Rmd @@ -0,0 +1,935 @@ +--- +title: "Sessão 1 - Introdução ao R" +subtitle: "Treinamento em R- SEFAZ RGS -WB DIME" +author: "Thiago Scot" +date: "The World Bank | Fevereiro 2025" +output: + xaringan::moon_reader: + css: ["libs/remark-css/default.css", "libs/remark-css/metropolis.css", "libs/remark-css/metropolis-fonts.css"] + lib_dir: libs + nature: + ratio: "16:9" + highlightStyle: github + highlightLines: true + countIncrementalSlides: false + +--- + +```{r setup, include = FALSE} +# Load packages +library(knitr) +library(xaringanExtra) +library(here) +here::i_am("1-introduction-to-r.Rmd") +options(htmltools.dir.version = FALSE) +opts_chunk$set( + fig.align = "center", + fig.height = 4, + dpi = 300, + cache = T + ) +xaringanExtra::use_panelset() +xaringanExtra::use_webcam() +xaringanExtra::use_clipboard() +htmltools::tagList( + xaringanExtra::use_clipboard( + success_text = "", + error_text = "" + ), + rmarkdown::html_dependency_font_awesome() +) +xaringanExtra::use_logo( + image_url = here("img", + "lightbulb.png"), + exclude_class = c("inverse", + "hide_logo"), + width = "50px" +) +``` + +```{css, echo = F, eval = T} +@media print { + .has-continuation { + display: block !important; + } +} +``` + +# Tabela de Conteúdos + +1. [Introdução](#intro) +1. [Trabalho com dados e programação estatística](#data-work) +1. [Programação estatística](#statistical-programming) +1. [Escrevendo código em R](#writing-r-code) +1. [Dados no R](#data-in-r) +1. [Tipos de objetos](#object-types) +1. [Funções no R](#functions-in-r) +1. [Concluindo](#wrapping-up) +1. [Apêndice](#appendix) + + +--- + +class: inverse, center, middle +name: intro + +# Introdução + +

+ +--- + +# Introdução + +## Sobre este treinamento + +- Esta é uma **introdução** ao trabalho com dados e programação estatística em R + +- O treinamento não exige nenhum conhecimento prévio em programação estatística + +- É necessário um computador com R e RStudio instalados para completar os exercícios + +- Conexão com a internet é necessária para baixar os materiais do treinamento + +--- + +# Introdução + +## Objetivos de aprendizado + +Ao final do treinamento, você saberá: + +- Como abordar o trabalho com dados por meio da programação estatística utilizando R e RStudio + +- Como aplicar manipulação de dados e criar resultados com estatísticas descritivas e visualização de dados, desenvolvendo e executando código R reproduzível + +--- + +class: inverse, center, middle +name: data-work + +# Trabalho com dados e programação estatística + +

+ +--- + +# Trabalho com dados + +Para o contexto deste treinamento, chamaremos de trabalho com dados tudo aquilo que: + +1. Começa com uma entrada de dados +2. Realiza algum processo com os dados +3. Produz uma saída com o resultado + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session1/data-work.png") +``` + +--- + +# Programação estatística + +- Programação consiste em produzir instruções para um computador realizar algo + +- No contexto do trabalho com dados, esse "algo" é análise estatística ou operações matemáticas + +- Portanto, programação estatística consiste em produzir instruções para que nossos computadores realizem análise estatística sobre os dados + +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session1/data-work-with-instructions.png") +``` + +--- + +# Programação estatística + +- Você pode pensar na programação estatística como escrever uma receita + +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session1/data-work-and-cooking.png") +``` + +--- + +# Programação estatística + +## Por que usar o R? + +.pull-left[ +- A programação estatística pode ser implementada através de diversos softwares. Outras opções são Stata e Python +- Recomendamos o uso do R por estes motivos: + + O R é gratuito + + O R foi desenvolvido especificamente para programação estatística + + Existe uma grande comunidade mundial de usuários de R. Isso significa que você pode facilmente buscar ajuda ou exemplos de código na internet +] + +.pull-right[ +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session1/software-logos.png") +``` +] + +--- + +# Programação estatística + +## Como escrever código em R? + +- O restante da sessão de hoje foca nos conceitos básicos de escrita de código em R + +- Usaremos o RStudio para escrever o código em R neste treinamento + +--- + +# Programação estatística + +## Como escrever código em R? + +- Agora abra o RStudio em seu computador + +- Por favor, certifique-se de que está abrindo o RStudio e não o R + +```{r echo = FALSE, out.width="30%"} +knitr::include_graphics("img/session1/r-rstudio.png") +``` + +--- + +# Programação estatística + +## Como escrever código em R? + +- Agora abra o RStudio em seu computador + +- Por favor, certifique-se de que está abrindo o RStudio e não o R + +```{r echo = FALSE, out.width="60%"} +knitr::include_graphics("img/session1/rstudio.png") +``` + +--- + +class: inverse, center, middle + +# Dúvidas? + +

+ +--- + +class: inverse, center, middle +name: writing-r-code + +# Escrevendo código em R + +

+ +--- + +# Escrevendo código em R + +## RStudio interface + +```{r echo = FALSE, out.width="74%"} +knitr::include_graphics("img/session1/rstudio-panels.png") +``` + +--- + +# Escrevendo código em R + +## Exercício 1: escrevendo código no console + +1. Escreva o seguinte código no console do RStudio + + print("Oi!") + + Certifique-se de incluir as aspas: " " + +2. Pressione Enter para rodar o código + +```{r echo = FALSE, out.width="50%"} +knitr::include_graphics("img/session1/console.png") +``` + +--- + +# Escrevendo código em R + +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session1/exercise1-2.png") +``` + +--- + +# Escrevendo código em R +## Exercício 2: escrevendo um script curto + +.pull-left[ +1- Escreva ou copie o seguinte texto na seção de script do RStudio: + +```{r eval=FALSE} +x1 <- 100 +x2 <- 50 +x3 <- x1 + x2 +print(x3) +``` + +2- Selecione o texto que você introduziu com o mouse + +3- Pressione "Run" +] +.pull-right[ +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session1/script.png") +``` +] +--- + +# Escrevendo código em R + +```{r echo = FALSE, out.width="50%"} +knitr::include_graphics("img/session1/exercise2.png") +``` + +--- + +# Escrevendo código em R + +## R scripts + +.pull-left[ +- Escrever e executar código no console fará com que ele seja executado imediatamente +] + +.pull-right[ +```{r echo = FALSE, out.width="110%"} +knitr::include_graphics("img/session1/exercise1-2.png") +``` +] + +--- + +# Escrevendo código em R + +## R scripts + +.pull-left[ +- Escrever e executar código no console fará com que ele seja executado imediatamente + +- Escrever código no painel de script nos permite escrever várias linhas de código e executá-las depois + + + Cada linha é executada na ordemr + + + A linha e os resultados aparecerão no console + +- **Importante**: para o restante do treinamento, lembre-se de sempre introduzir seu código no script (e não no console) para que você possa manter um registro do que fez +] + +.pull-right[ +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session1/exercise2.png") +``` +] + +--- + +# Escrevendo código em R + + +## R scripts + +- Em outras palavras: os scripts contêm as instruções que você dá ao seu computador ao realizar o trabalho com dados +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session1/data-work-script.png") +``` + +--- + +# Escrevendo código em R + +## Criando objetos no R + +- Lembra do painel de ambiente que mencionamos? É lá que o R mantém o controle dos objetos + +- Objetos são representações dos dados que existem atualmente na memória do R + + + Um único número pode ser um objeto + + Uma palavra pode ser um objeto + + Até mesmo um arquivo de dados inteiro pode ser um objeto + +- Criamos objetos no R com o operador de seta (`<-`) + +- No exercício 2, criamos objetos cada vez que usamos `<-` + +- Depois que um objeto é criado, podemos nos referir a ele usando seu nome: + +```{r echo=FALSE} +x3 <- 100 + 50 +``` + +```{r} +print(x3 + 8) +``` + +--- + +# Escrevendo código em R + +## Criando objetos no R + +- Após a criação de qualquer objeto, ele aparecerá no painel de ambiente + +```{r echo = FALSE, out.width="60%"} +knitr::include_graphics("img/session1/environment.png") +``` + +--- + +# Escrevendo código em R + +- Agora sabemos como usar o RStudio para escrever código em R e criar scripts + +- Ainda não introduzimos os dados no nosso trabalho com dados. Isso vem a seguir + +--- + +class: inverse, center, middle +name: data-in-r + +# Dados no R + +

+ +--- + +# Dados no R + +## Exercício 3: Carregando dados no R + + 1.- Vá para esta página: https://osf.io/2apht e baixe o arquivo `small_business_2019_br.csv` WE NEED TO UPDATE THIS PATH. + +```{r echo = FALSE, out.width="60%"} +knitr::include_graphics("img/session1/osf-screenshot.png") +``` + +--- + +# Dados no R + +## Exercício 3: Carregando dados no R + + 2.No RStudio, vá em `File` > `Import Dataset` > `From Text (base)` e selecione o arquivo `small_business_2019_br.csv` + + + Se você não souber onde está o arquivo, verifique na sua pasta `Downloads` + +.pull-left[ +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session1/import_data1.png") +``` +] + +.pull-right[ +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session1/downloads-1.png") +``` +] + +--- + +# Dados no R + +## Exercício 3: Carregando dados no R + +3 - Certifique-se de selecionar `Heading` > `Yes` na próxima janela + +4 - Selecione `Import` + +```{r echo = FALSE, out.width="40%"} +knitr::include_graphics("img/session1/import3-1.png") +``` + +--- + +# Dados no R + +- Se você fez isso corretamente, perceberá que um visualizador dos dados agora aparece no RStudio +- Você pode clicar no `x` o lado de `small_business_2019_br` para voltar ao script +- Para abrir o visualizador novamente, use o código: `View(small_business_2019_br)` (note o "V" maiúsculo) + +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session1/data-viewer-br.png") +``` + +--- + +# Dados no R + +- Além disso, agora você verá um objeto chamado `small_business_2019_br` no seu painel de ambiente + +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session1/environment2.png") +``` + +--- + +# Dados no R + +- Lembra que mencionamos os objetos antes? Para o R, `small_business_2019_br` é um objeto assim como `x1`, `x2`, ou `x3` + +- A diferença é que `small_business_2019_br` não é um único número como `x1`, mas uma coleção de valores numéricos semelhantes a uma planilha do Excel. No R, esse tipo de objeto é chamado **dataframes** + +- A partir de agora, vamos nos referir aos dados carregados no R como **dataframes** + +```{r echo = FALSE, out.width="60%"} +knitr::include_graphics("img/session1/environment2.png") +``` + +--- + +# Dados no R + +- Como os dataframes também são objetos, podemos nos referir a eles pelos seus nomes (exm: `small_business_2019_br`) + +- Veremos um exemplo disso no próximo exercício + +--- + +# Dados no R + +## A note about this dataframe + +Compreender os dados que você usa é muito importante. Para este treinamento, `small_business_2019_br` é um dataframe de exemplo com dados de receita de negócios para 2019 + +- `modified_id` é o identificador do negócio +- `region` é a região onde o negócio está localizado +- `income` é a receita que o negócio reportou em 2019 + +```{r echo = FALSE, out.width="50%"} +knitr::include_graphics("img/session1/data-viewer-br.png") +``` + +--- + +# Dados no R + +## Exercício 4: Subconjunto de dados + +1. Use o seguinte código para criar um subconjunto de `small_business_2019_br` mantendo apenas as observações na região chamada: "Pelotas": `df_pelotas <- subset(small_business_2019_br, region == "Pelotas")` + + + Note que estamos usando o operador de seta (`<-`) para armazenar o resultado + + Note que há **dois sinais de igual** na condição, não um + + Também note que você precisa escrever `"Pelotas"` entre aspas e com a letra `P`, pois é assim que está nos dados + +2. Use `View(df_pelotas)` para visualizar o dataframe novamente e ver como ele mudou (note a letra maiúscula "V") + +--- + +# Dados no R + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session1/data-viewer2-br.png") +``` + +--- + +# Dados no R +## Armazenando resultados no R + +Há uma diferença importante entre usar `<-` e não usá-lo + +-Não usar `<-` **simplesmente exibe o resultado no console**. O dataframe de entrada permanecerá inalterado e o resultado **não será armazenado** + +```{r eval=FALSE} +subset(small_business_2019_br, region == "Pelotas") +``` + +```{r echo = FALSE, out.width="50%"} +knitr::include_graphics("img/session1/console-subset-br.png") +``` + +--- + +# Dados no R + +## Armazenando resultados no R + +- Using `<-` informa ao R que queremos armazenar o resultado em **um novo objeto**, que é o objeto à esquerda da seta. Dessa vez, o resultado não será impresso no console, mas o novo dataframe aparecerá no painel de ambiente + +```{r echo=FALSE} +small_business_2019_br <- read.csv(here("data", "small_business_2019_br.csv")) +``` + +```{r} +df_pelotas <- subset(small_business_2019_br, region == "Pelotas") +``` + +```{r echo = FALSE, out.width="60%"} +knitr::include_graphics("img/session1/environment3-br.png") +``` + +--- + +# Dados no R + +- O R pode armazenar múltiplos dataframes no ambiente. Isso é análogo a ter diferentes planilhas na mesma janela do Excel. + +- Lembre-se sempre de que dataframes são apenas objetos no R. O R diferencia a qual dataframe o código se refere pelo nome do dataframe. + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session1/multiple-dataframes-br.png") +``` + +--- + +class: inverse, center, middle +name: object-types + +# Tipos de objetos no R + +

+ +--- + +# Tipos de objetos no R + +- Os objetos no seu ambiente possuem diferentes tipos, dependendo do tipo de dado que representam. + +- Diferentes tipos de objetos permitem aplicar diferentes operações a eles ou aplicar a mesma operação de maneira diferente. +--- + +# Tipos de objetos no R + +- Você pode sempre verificar o tipo de um objeto com a função `class()` + +```{r, echo=FALSE} +x1 <- 100 +x2 <- 50 +x3 <- x1 + x2 +``` + +```{r} +class(x1) +``` + +```{r} +class(df_pelotas) +``` +--- + +# Tipos de objetos no R + +Até agora, trabalhamos com duas classes de objetos: + +- **Numérico:** valores numéricos únicos que podemos usar em operações matemáticas. Os objetos `x1`, `x2`, and `x3` são numéricos. Eles são semelhantes aos valores que você armazenaria em uma célula única do Excel + +- **Dataframe:** uma coleção de valores organizados em linhas e colunas. `small_business_2019_br` and `df_pelotas` são dataframes. Eles são semelhantes a uma planilha do Excel. + +No próximo exercício, aprenderemos sobre outro tipo de objeto. + +--- + +# Tipos de objetos no R + +## Vetores + +-Vetores são uma coleção de valores com **uma única dimensão**, em vez de serem organizados em linhas e colunas como dataframes + +- Você pode pensar em um vetor no R como uma única coluna em uma planilha do Excel ou em um dataframe do R + +- Você pode criar vetores com a função `c()`, e os elementos do vetor são separados por vírgulas. + +```{r eval=FALSE} +my_vector <- c(4, 8, 2, 5) +``` + +--- + +# Tipos de objetos no R + +## Exercício 5: criar e operar vetores + +1- Crie um vetor com os elementos 3, 8 e 10 e nomeie-o como `v1`: + +```{r} +v1 <- c(3, 8, 10) +``` + +2- Crie um segundo vetor com os elementos 7, 2 e 5 e nomeie-o como `v2` + +```{r} +v2 <- c(7, 2, 5) +``` + +3- Crie um terceiro vetor chamado `result1` om a soma de `v1` e `v2`: + +```{r} +result1 <- v1 + v2 +``` + +4- Por fim, crie um quarto vetor chamado `result2` om a soma de `v2` mais dez: + +```{r} +result2 <- v2 + 10 +``` + +5- Print `result1` and `result2` and observe the results + +--- + +# Tipos de objetos no R + +```{r echo = FALSE, out.width="65%"} +knitr::include_graphics("img/session1/ex5-br.png") +``` + +--- + +# Tipos de objetos no R + +```{r echo = FALSE, out.width="75%"} +knitr::include_graphics("img/session1/ex5-2-br.png") +``` + +--- + +# Tipos de objetos no R + +Observe duas coisas: + +1.- Operar com dois vetores aplica a operação **elemento por elemento** (CHECK TRANSLATION FROM element-wise**) + +```{r echo = FALSE, out.width="75%"} +knitr::include_graphics("img/session1/element-wise-vector.png") +``` + +2.- Operar um vetor com um objeto numérico **aplicará a mesma operação a cada elemento do vetor** + +```{r echo = FALSE, out.width="75%"} +knitr::include_graphics("img/session1/same-operation-vector.png") +``` + +--- + +class: inverse, center, middle +name: functions-in-r + +# Funções no R + +

+ +--- + +# Funções no R + +- Funções são como aplicamos operações a objetos no R + +- Usamos algumas funções nos exercícios anteriores. Por exemplo, `subset()` e`paste()` são funções + +- Tudo o que tem um nome seguido de parênteses é uma função no R + + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session1/function-br.png") +``` + +--- + +# Funções no R + +As funções têm a seguinte sintaxe: + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session1/function-syntax-br.png") +``` + +- **Nome da função:** o nome que usamos para chamar uma função. Ele fica antes dos parênteses. + +- **Argumentos:** entradas e especificações para a função ser aplicada. + + + Os argumentos ficam dentro dos parênteses. + + O primeiro argumento é o objeto sobre o qual a função será aplicada. + +--- + +# Funções no R + +- O resultado de uma função pode sempre ser armazenado em um objeto utilizando o operador de seta (`<-`) + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session1/function-stored-br.png") +``` + +- Como vimos anteriormente, os resultados de uma função só serão impressos no console se você não os armazenar + +--- + +# Funções no R + +## Exercício 6: Usando a função `summary()` + +1. Calcule as estatísticas descritivas das variáveis de `small_business_2019_br` e armazene o resultado com `summary_table <- summary(small_business_2019_br)` + +2. Imprima o resultado armazenado com `print(summary_table)` + +--- + +# Funções no R + +Observe que este código está tanto criando um novo objeto (com `summary_table <- summary(small_business_2019_br)`) quanto imprimindo o resultado no console (com `print(small_business_2019_br)`) + +```{r echo = FALSE, out.width="75%"} +knitr::include_graphics("img/session1/summary-result.png") +``` + +--- + +class: inverse, center, middle + +# Perguntas? + +

+ +--- + +class: inverse, center, middle +name: wrapping-up + +# Finalizando + +

+ +--- + +# Finalizando + +## Adicione comentários no código! + +- Toda linha de código que começa com o símbolo de cerquilha (`#`) será ignorada quando o R executar o código + +-Isso significa que você pode adicionar qualquer comentário explicativo com `#`. Esses são chamados de **comentários no código** + +- É sempre uma boa prática adicionar comentários no código para lembrar o que o código está fazendo mais tarde ou para explicar seu código para outras pessoas, caso você vá compartilhá-lo + +--- + +# Finalizando + +- Tente adicionar comentários no código ao seu script para lembrar qual parte corresponde a cada exercício. + +```{r echo = FALSE, out.width="65%"} +knitr::include_graphics("img/session1/code-comments.png") +``` + +--- + +# Finalizando + +## Sempre salve seu trabalho! + +- Clique no ícone do disquete para salvar seu trabalho. +- Selecione um local para o seu arquivo e lembre-se de onde está salvando. + +```{r echo = FALSE, out.width="65%"} +knitr::include_graphics("img/session1/save.png") +``` + +--- + +# Finalizando + +## Esta sessão + +Esta primeira sessão focou nos fundamentos para escrever código em R + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session1/session1.png") +``` + +--- + +# Finalizando + +## Próxima sessão + +Na próxima sessão, aprenderemos como preparar os dados para serem exportados como resultados + + + + + + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session1/session2.png") +``` + +--- + +class: inverse, center, middle + +# Obrigado! // Thanks! // ¡Gracias! + +

+ +--- + +class: inverse, center, middle +name: appendix + +# Appendix + +

+ +--- + +# Appendix + +## Tipos de objetos: cadeias de caracteres + +- As cadeias de caracteres são coleções de caracteres alfanuméricos, geralmente representando palavras ou textos, ou apenas caracteres em geral. + +```{r} +s1 <- "Oi!" +print(s1) +``` + +- As cadeias de caracteres **sempre ficam entre aspas** (`" "`) + +- Elas são geralmente chamadas apenas de **strings** + +--- + +# Appendix +## Exercise: create and operate character strings + +1. Create a character string object with the words `"Georgia has great"` and name it `words1` + +2. Create a second string with the words `"wine"` and name it `words2` + + + Don't forget to use `<-` to create the string objects + + Remember to include the quotes: `" "` + +3. Use the following code to concatenate `words1` and `words2`, save the result in `words_result`, and print it: + +```{r eval=FALSE} +words_result <- paste(words1, words2) +print(words_result) +``` + +--- + +# Appendix +## Object types: character strings + +```{r echo = FALSE, out.width="45%"} +knitr::include_graphics("img/session1/ex6.png") +``` + +--- + +# Appendix + +## Object types: character strings + +```{r echo = FALSE, out.width="60%"} +knitr::include_graphics("img/session1/ex6-environment.png") +``` \ No newline at end of file diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.html b/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.html new file mode 100644 index 0000000..6ec5951 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.html @@ -0,0 +1,1001 @@ + + + + Sessão 1 - Introdução ao R + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.pdf b/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.pdf new file mode 100644 index 0000000..eb630fa Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/1-introduction-to-r.pdf differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.Rmd b/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.Rmd new file mode 100644 index 0000000..bbacd84 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.Rmd @@ -0,0 +1,1009 @@ +--- +title: "Session 2 - Data wrangling" +subtitle: "R training - Georgia RS-WB DIME" +author: "Luis Eduardo San Martin" +date: "The World Bank | September 2023" +output: + xaringan::moon_reader: + css: ["libs/remark-css/default.css", "libs/remark-css/metropolis.css", "libs/remark-css/metropolis-fonts.css"] + lib_dir: libs + nature: + ratio: "16:9" + highlightStyle: github + highlightLines: true + countIncrementalSlides: false +--- + +```{r setup, include = FALSE} +# Load packages +library(knitr) +library(xaringanExtra) +library(here) +library(dplyr) +here::i_am("2-data-wrangling.Rmd") +options(htmltools.dir.version = FALSE) +opts_chunk$set( + fig.align = "center", + fig.height = 4, + dpi = 300, + cache = T + ) +xaringanExtra::use_panelset() +xaringanExtra::use_webcam() +xaringanExtra::use_clipboard() +htmltools::tagList( + xaringanExtra::use_clipboard( + success_text = "", + error_text = "" + ), + rmarkdown::html_dependency_font_awesome() +) +xaringanExtra::use_logo( + image_url = here("img", + "session1", + "lightbulb.png"), + exclude_class = c("inverse", + "hide_logo"), + width = "50px" +) +``` + +```{css, echo = F, eval = T} +@media print { + .has-continuation { + display: block !important; + } +} +``` + +# Table of contents // სარჩევი + +1. [About this session](#about-this-session) +1. [R libraries](#r-libraries) +1. [Data wrangling](#data-wrangling) +1. [Filtering and sorting](#filtering-sorting) +1. [Merging dataframes](#merging) +1. [Exporting outputs](#exporting-outputs) +1. [Wrapping up](#wrapping-up) +1. [Appendinx](#appendix) + +--- + +class: inverse, center, middle +name: about-this-session + +# About this session // + +

+ +--- + +# About this session // ამ სესიის შესახებ + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/data-work-script.png") +``` + +--- + +# About this session // ამ სესიის შესახებ + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/session2.png") +``` + +--- + +class: inverse, center, middle +name: r-libraries + +# R libraries // R პაკეტები + +

+ +--- + +# R libraries // R პაკეტები + +- Installing R in your computer gives you access to its basic functions + +- Additionally, you can also install libraries. Libraries are packages of additional R functions that allow you to do: + + + Operations that basic R functions don't do (example: work with geographic data) + + + Operations that basic R functions do, but easier (example: data wrangling) + +--- + +# R libraries // R პაკეტები + +In a nutshell: + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/r-libraries.png") +``` + +--- + +# R libraries // R პაკეტები + +## Installing R libraries + +- Installing libraries is usually simple, but it can be challenging in institutional network connections such as the World Bank or the Georgia RS + +- The next exercise will set up RStudio so that it can install R libraries without problems + +--- + +# R libraries // R პაკეტები + +## Exercise 1: Setting up the installation of libraries + +1 - In RStudio, go to `Tools` >> `Global Options...` + +```{r echo = FALSE, out.width="60%"} +knitr::include_graphics("img/session2/global-options.png") +``` + +--- + +# R libraries // R პაკეტები + +## Exercise 1: Setting up the installation of libraries + +.pull-left[ +2 - Select `Packages` in the left pane + +3 - Uncheck `Use secure download method for HTTP` + +4 - Click `OK` + +You will not see any changes in your RStudio window after this, but now you'll be able to install libraries. +] + +.pull-right[ +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/packages-options.png") +``` +] + +--- + +# R libraries // R პაკეტები + +We'll use one librariy in today's session: `dplyr` + +## Exercise 2: Installing libraries + +1. Install the libraries by using `install.packages()` + + + `install.packages("dplyr")` + + Note the quotes (`" "`) in the packages names + + **Introduce this code in the console**, not the script panel + +```{r echo = FALSE, out.width="50%"} +knitr::include_graphics("img/session2/dplyr-install.png") +``` + +--- + +# R libraries // R პაკეტები + +## Installing libraries + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session2/installing-dplyr.png") +``` + +--- + +# R libraries // R პაკეტები + +Now that `dplyr` is installed, we only need to load them to start using the functions they have. + +## Exercise 3: Loading libraries + +.pull-left[ +1. Open a new script with `File` >> `New File` >> `R Script` + +1. Load `dplyr` with: `library(dplyr)` + + + Run this code from the new script you just opened + + Notice that we don't use quotes in the library names this time +] +.pull-right[ +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/loading-dplyr.png") +``` +] + +--- + +# R libraries // R პაკეტები + +- Library installation: + +```{r echo = FALSE, out.width="37%"} +knitr::include_graphics("img/session2/installation.png") +``` + +- Library loading: + +```{r echo = FALSE, out.width="37%"} +knitr::include_graphics("img/session2/loading.png") +``` + +- You install R libraries only once in your computer + +- You load libraries every time you open a new RStudio window (only load the libraries you will use) + +--- + +class: inverse, center, middle +name: data-wrangling + +# Data wrangling // მონაცემთა ჩხუბი + +

+ +--- + +# Data wrangling // მონაცემთა ჩხუბი + +## Getting your data ready + +- Data is rarely in a format where it can be converted in an output right away + +- In statistical programming, the process of transforming data into a condition where it's ready to be converted into an output is called **data wrangling** + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/data-wrangling.png") +``` + +--- + +# Data wrangling // მონაცემთა ჩხუბი + +## Getting your data ready + +- Data wrangling is one of the most crucials and time-consuming aspects of data work + +- It involves not only coding, but also the mental exercise of thinking what is the shape and condition that your dataframe needs to have in order to produce your desired output + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/data-wrangling-reasoning.png") +``` + +--- + +# Data wrangling // მონაცემთა ჩხუბი + +## Getting your data ready + +.pull-left[ +- As we said before we'll use `dplyr` and `tidyr` for data wrangling in this training + +- You can also use basic R, but we recommend these libraries because its functions are easier to use +] +.pull-right[ +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/dplyr.png") +``` +] + +--- + +# Data wrangling // მონაცემთა ჩხუბი + +## Exercise 4: Loading data + +Note that this part of this is the same exercise we did in session 1, but it's okay to repeat it in order to start using a new RStudio session. **If you have RStudio open, start by closing the window and opening RStudio again**. + +.pull-left[ +1. Inyou new RStudio window, go to `File` > `Import Dataset` > `From Text (base)` and select again the file `small_business_2019_age.csv` + + + if you don't know where the file is, check in the `Downloads` folder + + if you need to download it again, it's here: https://osf.io/2apht + +1. Make sure to select `Heading` > `Yes` in the next window + +1. Select `Import` + +1. Download this new file: https://osf.io/v6psa and repeat steps 1-3 with it + +] +.pull-right[ + +```{r echo = FALSE, out.width="85%"} +knitr::include_graphics("img/session1/import3.png") +``` +] + +--- + +# Data wrangling // მონაცემთა ჩხუბი + +```{r, echo=FALSE} +small_business_2019 <- read.csv(here("data", "small_business_2019.csv")) +small_business_2019_age <- read.csv(here("data", "small_business_2019_age.csv")) +``` + +```{r echo = FALSE, out.width="85%"} +knitr::include_graphics("img/session2/ex4.png") +``` + +--- + +# Data wrangling // მონაცემთა ჩხუბი + +## Note: loading data with a function + +- You can also load CSV data with the function `read.csv()` instead of using this point-and-click approach + +- The first argument of `read.csv()` is the path in your computer where your data is. For example + +```{r, eval=FALSE} +sample_vat <- read.csv("C:/Users/wb532468/Downloads/small_business_2019_age.csv") +``` + +- As usual, you need to save the result of `read.csv()` into a dataframe object with the arrow operator (`<-`) for it to be stored in the environment + +--- + +# Data wrangling // მონაცემთა ჩხუბი + +## Recap: knowing your data + +- Dataframe `small_business_2019` is the same dataframe we used last session that contains reported income of small business in 2019 and their locations +- The new dataframe is `small_business_2019_age` +- Each row is one small business with their corresponding firm age for 2019 +- Column `Modified_ID` is a taxpayer identifier +- `age` is the firm age + +```{r echo = FALSE, out.width="60%"} +knitr::include_graphics("img/session2/data-viewer.png") +``` + +--- + +# Data wrangling // მონაცემთა ჩხუბი + +- We will only use this dataframe in one of the next exercises, but we loaded it now because it's in general a good practice to have data loaded into the memory so it's ready to be used + +- For the next exercises, we will face (likely) scenarios that will show us data work operations that require data wrangling + +--- + +class: inverse, center, middle +name: filtering-sorting + +# Filtering and sorting // ფილტრაცია და დახარისხება + +

+ +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +## Data work request + +**Scenario 1**: Imagine you're approached with the following request: + +*"The Georgia RS directorate is thinking of changing the criteria of what is considered a small business in Tbilisi. A critical input for this would be the list of the 50 biggest small business in Tbilisi in 2019. Can you produce such list? There is data from 2019 reported business income you can use"* + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +## Data work request + +.pull-left[ +*"There is data from 2019 reported business income you can use"* +] +.pull-right[ +*"A critical input for this would be the list of the 50 biggest small business in Tbilisi in 2019"* +] + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session2/filtering-sorting-planning.png") +``` + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +## Data work request + +The data wrangling here involves a number of operations: + +1. Keeping only the businesses in Tbilisi +1. Sorting by business income +1. Keeping only the 50 first businesses + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session2/filtering-sorting-planning.png") +``` + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +## 1. Keeping only the businesses in Tbilisi + +Use `filter()` for this: + +```{r eval=FALSE} +temp1 <- filter(small_business_2019, region == "Tbilisi") +``` + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session2/filtering-sorting1.png") +``` + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +## 2. Sorting by business income + +Use the function `arrange()` to sort. Sortings are ascending by default in R, hence we can include the minus (`-`) symbol before `income` to tell R we want to sort descending + +```{r eval=FALSE} +small_business_tb_sorted <- arrange(small_business_tb, -income) +``` + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session2/filtering-sorting2.png") +``` + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +## 3. Keeping only the 50 first businesses after the sorting + +Use `filter()` again and the helper command `nrow()` + +```{r eval=FALSE} +result_scenario1 <- filter(small_business_tb_sorted, row_number() <= 50) +``` + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session2/filtering-sorting3.png") +``` + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +## Exercise 5: filter and sort your data + +Now that we figured out the shape the resulting dataframe needs to have and how to get it there, we can write code for this. + +1.- Row selection: + +```{r eval=FALSE} +temp1 <- filter(small_business_2019, region == "Tbilisi") +``` +2.- Sort descending by income: + +```{r eval=FALSE} +temp2 <- arrange(temp1, -income) +``` + +3.- Keep only the 50 first businesses after sorting: + +```{r eval=FALSE} +df_tbilisi_50 <- filter(temp2, row_number() <= 50) +``` + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +Some notes: + +.pull-left[ +- `filter()`, `arrange()`, and `row_number()` are all functions from `dplyr`. Remember you have to always load `dplyr` first with `library(dplyr)` to be able to use them +- Note that we're creating two intermediate dataframes named `temp1` and `temp2` in the process +- We can avoid this by using the pipes operator (`%>%`). Pipes are very common in R programming, but we're not explaining them in this session +- The resulting dataframe is `df_tbilisi_50` +] +.pull-right[ +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session2/ex5.png") +``` +] + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +You can check the result with `View(df_tbilisi_50)`. Now this dataframe has exactly what we wanted! + +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session2/ex5-2.png") +``` + +--- + +# Filtering and sorting // ფილტრაცია და დახარისხება + +- Filtering and sorting are two very common data wrangling operations in statistical programming + +- Now we'll review a new data wrangling operation that is also quite common and useful: **merging**, also called joining + +--- + +class: inverse, center, middle +name: merging + +# Merging dataframes // მონაცემთა ჩარჩოების შეერთება + +

+ +--- + +# Merging dataframes + +- We'll explore one more common data wrangling operation: merging + +- Merging is used when you need to bring columns from one dataframe to another + +- When merging you need to use a "key" column that identifies the same units in different dataframes + +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session2/merge.png") +``` + +Note: Image taked from RStudio's data wrangling cheat sheet + +--- + +# Merging dataframes + +## Data work request + +**Scenario 2:** + +*"We want to know the total business reported income for small businesses with more than 5 years in 2019. You might want to use the data of small businesses income in 2019 that you already know and another file with small businesses age"* + +--- + +# Merging dataframes + +## Data work request + +.pull-left[ +*"Use the data of small businesses income in 2019 that you already know and another file with small businesses age"* +] +.pull-right[ +*"We want to know the total business income for small businesses with more than 5 years in 2019"* +] + +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session2/merging-planning.png") +``` + +--- + +# Merging dataframes + +## Data work request + +These are the steps we'd need to follow to get the data wrangled for this result: + +1. Select only the relevant columns from `small_business_2019` +1. Merge the dataframes +1. Filter only businesses with more than 5 years of age +1. Calculate the total income + +--- + +# Merging dataframes + +## 1. Select only the relevant columns from `small_business_2019` + +Use `select()` for this: + +```{r eval=FALSE} +temp1 <- select(small_business_2019, modified_id, income) +``` + +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session2/merging1.png") +``` + +--- + +# Merging dataframes + +## 2. Merge the dataframes + +Use `inner_join()` to merge the dataframes: + +```{r eval=FALSE} +temp2 <- inner_join(temp1, small_business_2019_age, by = "modified_id") +``` + +- The first two arguments are the two dataframes we want to join +- The third (named) argument is the "key" variable we merge by + +```{r echo = FALSE, out.width="55%"} +knitr::include_graphics("img/session2/merging2.png") +``` + +--- + +# Merging dataframes + +## 3. Filter only businesses with more than 5 years of age + +Use `filter()` once again: + +```{r eval=FALSE} +temp3 <- filter(temp2, age > 5) +``` + +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session2/merging3.png") +``` + +--- + +# Merging dataframes + +## 4. Calculate the total income + +We use `colSums()` and `select()`. + +- `colSums()` calculates de sum of all values of a column +- We use `select()` inside `colSums()` to select a single column from `temp3` to calculate the sum for + +```{r eval=FALSE} +total_income <- colSums(select(temp3, income)) +``` + +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session2/merging4.png") +``` + +--- + +# Merging dataframes + +## Exercise 6: Merge the dataframes + +Apply all the steps we reviewed in the last slides to calculate the total reported income for small businesses with more than five years of age in 2019. + +1.- Select only the relevant columns of `small_business_2019`: + +```{r eval=FALSE} +temp1 <- select(small_business_2019, modified_id, income) +``` + +2.- Merge the dataframes + +```{r eval=FALSE} +temp2 <- inner_join(temp1, small_business_2019_age, by = "modified_id") +``` + +3.- Filter only businesses with more than five years of age + +```{r eval=FALSE} +temp3 <- filter(temp2, age > 5) +``` + +4.- Calculate the total income + +```{r eval=FALSE} +total_income <- colSums(select(temp3, income)) +``` + +--- + +# Merging dataframes + +`total_income` is a numeric value with the amount we wanted to estimate. + +```{r echo=FALSE} +temp1 <- select(small_business_2019, modified_id, income) +temp2 <- inner_join(temp1, small_business_2019_age, by = "modified_id") +temp3 <- filter(temp2, age > 5) +total_income <- colSums(select(temp3, income)) +``` + +```{r} +print(total_income) +``` + +--- + +# Merging dataframes + +These were two examples we chose to show different possible data wrangling operations. A summary of these and other common operations are: + +| Operation | Function in `dplyr` | +| --------- | ------------------- | +| Subset columns | `select()`| +| Subset rows (based on condition) | `filter()` | +| Create new columns | `mutate()` | +| Create new columns based on condition | `mutate()` and `case_when()` | +| Create new rows | `add_row()` | +| Merge dataframes | `inner_join()`, `left_join()`, `right_join()`, `full_join()` | +| Append dataframes | `bind_rows()` | +| Deduplicate | `distinct()` | +| Collapse and create summary indicators | `group_by()`, `summarize()` | +| Pass a result as the first argument for the next function | `%>%` (operator, not function)| + +--- + +class: inverse, center, middle +name: exporting-outputs + +# Exporting outputs // პროდუქციის ექსპორტი + +

+ +--- + +# Exporting outputs // პროდუქციის ექსპორტი + +- Until now, we've seen full examples of part 1 and 2 of the data work pipeline +- What about exporting outputs? + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session2/data-work-progress.png") +``` + +- We'll see this in the next exercise + +--- + +# Exporting outputs // პროდუქციის ექსპორტი + +## Exporting dataframes + +- The easiest way to export a dataframe or number is with the function `write.csv()` + +- `write.csv()` creates a CSV file with the dataframe + +- It takes two basic arguments: + + 1. The name of the object you want to export + 1. A file path to export the object to + +- `write.csv()` includes the row numbers by default. You can add the argument `row.names = FALSE` to avoid this + +--- + +# Exporting outputs // პროდუქციის ექსპორტი + +## Exercise 7: Export `df_tbilisi_50` and `total_income` + +1. Use this code to export the results of the last two exercises: + +```{r eval=FALSE} +write.csv(df_tbilisi_50, + "df_tbilisi_50.csv", + row.names = FALSE) + +write.csv(total_income, + "total_income.csv", + row.names = FALSE) +``` + +--- + +# Exporting outputs // პროდუქციის ექსპორტი + +Now `df_tbilisi_50.csv` and `total_income.csv` will show in your computer (probably in your `Documents` folder). + +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session2/exported-csv.png") +``` + +--- + +# Exporting outputs // პროდუქციის ექსპორტი + +## Some notes on file paths + +- The second argument of `write.csv()` specifies the file path we export the dataframe to + +```{r eval=FALSE} +write.csv(df_tbilisi_50, + "df_tbilisi_50.csv", + row.names = FALSE) +``` + +- You can include any path in your computer and R will write the file in that location + + + For example: `"C:/Users/wb532468/OneDrive - WBG/Desktop`" exports the file to the desktop of my computer (this will not work in other computers) + + + Note that file paths in R use forward slashes (`/`). Back slashes (`\`) **do not work in R** + +--- + +# Exporting outputs // პროდუქციის ექსპორტი + +## Some notes on file paths + +```{r eval=FALSE} +write.csv(df_tbilisi_50, + "df_tbilisi_50.csv", + row.names = FALSE) +``` + +- If you only include a file name (as in `df_tbilisi_50.csv`), R will export the file to the current location of your RStudio window. This is usually the `Documents` folder in Windows + +- You can check the current location of RStudio with the function `getwd()` + +--- + +# Exporting outputs // პროდუქციის ექსპორტი + +Our data pipeline has been fully implemented at this point. Great! + +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session2/data-work-final-table.png") +``` + +--- + +class: inverse, center, middle +name: wrapping-up + +# Wrapping up // შეფუთვა + +

+ +--- + +# Wrapping up // შეფუთვა + +## Don't forget to save your work! + +- If you haven't, add code comments with `#` to differentiate your solutions for each exercise +- Click the floppy disk to save your work +- Make sure to remember where you're saving your file + +```{r echo = FALSE, out.width="55%"} +knitr::include_graphics("img/session2/save.png") +``` + +--- + +# Wrapping up // შეფუთვა + +## Data work pipeline + +```{r echo = FALSE, out.width="85%"} +knitr::include_graphics("img/session2/data-work-final.png") +``` + +--- + +# Wrapping up // შეფუთვა + +## Data work pipeline + +```{r echo = FALSE, out.width="85%"} +knitr::include_graphics("img/session2/data-work-day-2.png") +``` + +--- + +class: inverse, center, middle +name: appendix + +# Appendix // დანართი + +

+ +--- + +# Appendix // დანართი + +## Collapsing + +**Scenario:** Imagine you're approached with the following request: + +*"We're putting together a report where we want to include the total and average income of small businesses by region in 2019. Can you calculate these numbers? There is data for small businesses income in 2019 you can use for this."* + +--- + +# Appendix // დანართი + +## Collapsing + +.pull-left[ +*"There is data for small businesses income in 2019 you can use for this"* +] +.pull-right[ +*"we want to include the total and average income of small businesses by region in 2019"* +] + +--- + +# Appendix // დანართი + +## Collapsing + +The data wrangling here involves a number of operations: + +1. Keeping only the relevant columns and dropping everything else +1. Grouping the dataframe by region +1. Calculating the total income by region +1. Calculating the mean income by region + +The operation of transforming a dataframe with a lower level of observations (exm: firms) to an aggregated level (exm: regions) is called **collapsing**. + +--- + +# Appendix // დანართი + +## 1. Keeping only relevant columns + +Use `select()` for this: + +```{r eval=FALSE} +temp1 <- select(small_business_2019, region, income) +``` + +--- + +# Appendix // დანართი + +## 2. Grouping by region + +Use `group_by()`: + +```{r eval=FALSE} +temp2 <- group_by(temp1, region) +``` + +--- + +# Appendix // დანართი + +## 3. Calculating aggregated columns: total and average income + +Use `summarize()` combined with `sum()` and `mean()`: + +```{r eval=FALSE} +region_df <- summarize(temp2, + total = sum(income), + average = mean(income)) +``` + +--- + +# Appendix // დანართი + +## Exercise: Collapse your data + +Now we can write code to execute the data collapsing. + +1. Columns selection: `temp1 <- select(small_business_2019, region, income)` +1. Grouping by region: `temp2 <- group_by(temp1, region)` +1. Calculating the total and average by month: + +```{r, eval=FALSE} +region_df <- summarize(temp2, + total = sum(income), + average = mean(income)) +``` + +Some notes: + +- Once again, remember that these are all functions from `dplyr` +- There is a line break and tabulation space between each argument of `summarize()`. We use this for code clarity, R ignores line breaks and space when they are used between function arguments + +--- + +# Appendix // დანართი + +## Collapsing + +You can check your result with `View(region_df)`. Now your data as collapsed as you needed! diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.html b/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.html new file mode 100644 index 0000000..3a96da6 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.html @@ -0,0 +1,1090 @@ + + + + Session 2 - Data wrangling + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.pdf b/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.pdf new file mode 100644 index 0000000..347aaf0 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/2-data-wrangling.pdf differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/202309.Rproj b/Presentations-Brazil-SEFAZ/Feb 2025/202309.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/202309.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.Rmd b/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.Rmd new file mode 100644 index 0000000..fda74e2 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.Rmd @@ -0,0 +1,1008 @@ +--- +title: "Session 3 - Descriptive statistics" +subtitle: "R training - Georgia RS-WB DIME" +author: "Luis Eduardo San Martin" +date: "The World Bank | September 2023" +output: + xaringan::moon_reader: + css: ["libs/remark-css/default.css", + "libs/remark-css/metropolis.css", + "libs/remark-css/metropolis-fonts.css", + "libs/remark-css/custom.css"] + lib_dir: libs + nature: + ratio: "16:9" + highlightStyle: github + highlightLines: true + countIncrementalSlides: false +--- + +```{r setup, include = FALSE} +# Load packages +library(knitr) +library(xaringanExtra) +library(here) +library(dplyr) +library(modelsummary) +library(huxtable) +here::i_am("3-descriptive-statistics.Rmd") +options(htmltools.dir.version = FALSE) +opts_chunk$set( + fig.align = "center", + fig.height = 4, + dpi = 300, + cache = T + ) +xaringanExtra::use_panelset() +xaringanExtra::use_webcam() +xaringanExtra::use_clipboard() +htmltools::tagList( + xaringanExtra::use_clipboard( + success_text = "", + error_text = "" + ), + rmarkdown::html_dependency_font_awesome() +) +xaringanExtra::use_logo( + image_url = here("img", + "lightbulb.png"), + exclude_class = c("inverse", + "hide_logo"), + width = "50px" +) +``` + +```{css, echo = F, eval = T} +@media print { + .has-continuation { + display: block !important; + } +} +``` + +# Table of contents // სარჩევი + +- [Introduction](#intro) +- [Piping](#piping) +- [Quick summary statistics](#quick-summary-stats) +- [Customized summary statistics](#customized-summary-stats) +- [Exporting table](#exporting-tables) +- [Customizing table outputs](#customiing-table-outputs) +- [Wrapping up](#wrapping-up) + +--- + +class: inverse, center, middle +name: intro + +# Introduction // გაცნობა + +

+ +--- + +# Introduction // გაცნობა + +- We learned yesterday how to conduct statistical programming and export the results in `.csv` files +- However, sometime we might need more refined tables than simple (and ugly) CSVs + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session3/data-work-descriptive-stats.png") +``` + +--- + +# Introduction // გაცნობა + +- That's what today's session is about, along with an explanation of the pipes (`%>%`) + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session3/data-work-descriptive-stats.png") +``` + +--- + +# Introduction // გაცნობა + +## Exercise 1a: Getting the libraries for today's session + +We're going to use two R libraries in this session: `modelsummary` and `huxtable`. + +1. Install `modelsummary` and `huxtable`: + +```{r eval=FALSE} +install.packages("modelsummary") +install.packages("huxtable") +``` + +```{r echo = FALSE, out.width="55%"} +knitr::include_graphics("img/session3/install.png") +``` + +--- + +# Introduction // გაცნობა + +## Exercise 1b: Download and load the data we'll use + +.pull-left[ +1. Go to https://osf.io/z8snr and download the file + +1. In RStudio, go to `File` > `Import Dataset` > `From Text (base)` and select the file `small_business_2019_all.csv` + + + If you don't know where the file is, remember to check in your `Downloads` folder + +1. Select `Import` +] + +.pull-right[ +```{r echo = FALSE, out.width="85%"} +knitr::include_graphics("img/session3/import.png") +``` +] + +--- + +# Introduction // გაცნობა + +You should have one dataframe loaded in the environment after this. + +```{r echo = FALSE, out.width="90%"} +knitr::include_graphics("img/session3/environment.png") +``` + +--- + +# Introduction // გაცნობა + +## Recap: always know your data! + +- This data is similar to the one we used before +- Every row is one business in one tax period (month) +- `modified_id` is a business identifier +- We also have information about the region, firm age, monthly income, VAT liability +- There is one more variable we didn't see before: `group` contains the group the firm was assigned to in a random experiment + +```{r echo = FALSE, out.width="40%"} +knitr::include_graphics("img/session3/df.png") +``` + +--- + +class: inverse, center, middle +name: piping + +# Piping + +

+ +--- + +# Piping + +- Before we start producing more refined outputs, we need to cover piping + +- You probably remember this piece of code from one of yesterday's exercise: + +```{r eval= FALSE} +# Filter only businesses in Tbilisi: +temp1 <- filter(small_business_2019, region == "Tbilisi") + +# Sort previous result by income, descending order: +temp2 <- arrange(temp1, -income) + +# Keep only the 50 first businesses after sorting: +df_tbilisi_50 <- filter(temp2, row_number() <= 50) +``` + +--- + +# Piping + +This code works, but the problem with it is that it makes us generate unnecessary intermediate dataframes (`temp1`, `temp2`) that store results temporarily + +```{r echo = FALSE, out.width="75%"} +knitr::include_graphics("img/session3/temp_dfs.png") +``` + +--- + +# Piping + +Instead, we can use pipes to **pass the results of a function and apply a new function on top of it** + +.pull-left[ +```{r eval= FALSE} +# Filter only businesses in Tbilisi: +temp1 <- filter(small_business_2019, + region == "Tbilisi") + +# Sort previous result by income, descending order: +temp2 <- arrange(temp1, + -income) + +# Keep only the 50 first businesses after sorting: +df_tbilisi_50 <- filter(temp2, + row_number() <= 50) +``` +] + +.pull-right[ +```{r eval=FALSE} +# The same but with pipes: +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +--- + +# Piping + +.pull-left[ +```{r eval= FALSE} +# Filter only businesses in Tbilisi: +temp1 <- filter(small_business_2019, + region == "Tbilisi") + +# Sort previous result by income, descending order: +temp2 <- arrange(temp1, + -income) + +# Keep only the 50 first businesses after sorting: +df_tbilisi_50 <- filter(temp2, + row_number() <= 50) +``` +] + +.pull-right[ +```{r eval=FALSE} +# The same but with pipes: +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +There are several important details to notice here: + +1.- The resulting dataframe `df_tbilisi_50` is **the same in both cases** + +--- + +# Piping + +.pull-left[ +```{r eval= FALSE} +# Filter only businesses in Tbilisi: +temp1 <- filter(small_business_2019, + region == "Tbilisi") + +# Sort previous result by income, descending order: +temp2 <- arrange(temp1, + -income) + +# Keep only the 50 first businesses after sorting: +df_tbilisi_50 <- filter(temp2, + row_number() <= 50) +``` +] + +.pull-right[ +```{r eval=FALSE} +# The same but with pipes: +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +2.- The name of the resulting dataframe is now defined in the first line of this data wrangling operation. This is because **R evaluates lines with consecutive pipes as if they were a single line** + +--- + +# Piping + +.pull-left[ +```{r eval= FALSE} +# Filter only businesses in Tbilisi: +temp1 <- filter(small_business_2019, + region == "Tbilisi") + +# Sort previous result by income, descending order: +temp2 <- arrange(temp1, + -income) + +# Keep only the 50 first businesses after sorting: +df_tbilisi_50 <- filter(temp2, + row_number() <= 50) +``` +] + +.pull-right[ +```{r eval=FALSE} +# The same but with pipes: +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +3.- Notice that the functions `arrange()` and `filter()` used after the pipes now have only **one argument instead of two**. This is because when using pipes the first argument is implied to be result of the function before the pipes + +--- + +# Piping + +## Exercise 2: filtering and sorting revisited + +1. Apply the same filtering and sorting now with pipes + +```{r eval=FALSE} +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` + +--- + +# Piping + +Now we will not have any annoying intermediate results stored in our environment! + +.pull-left[ +```{r eval=FALSE} +# The same but with pipes: +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +.pull-right[ +```{r echo = FALSE, out.width="85%"} +knitr::include_graphics("img/session3/env-pipes.png") +``` +] + +--- + +# Piping + +Lastly, we can also add more formatting to this code to improve its clarity even more: + +.pull-left[ +```{r eval=FALSE} +# Previous solution +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +.pull-right[ +```{r eval=FALSE} +# The same with better spacing +df_tbilisi_50 <- + small_business_2019 %>% + filter(region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +--- + +# Piping + +.pull-left[ +```{r eval=FALSE} +# Previous solution +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +.pull-right[ +```{r eval=FALSE} +# The same with better spacing +df_tbilisi_50 <- + small_business_2019 %>% + filter(region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) +``` +] + +- Good code is code that is both correct (does what it's supposed to) and it's easy to understand + +- Piping is **instrumental for writing good code in R** + +--- + +# Piping + +## Always use pipes! + +Now that you now about the power of the pipes, use them wisely! + +.pull-left[ +- Remember that pipes are part of the library `dplyr`, you need to load it before using them + +- Pipes also improve code clarity drastically + +- Many R coders use pipes and internet examples assume you know them + +- **We'll use pipes now in the next examples and exercises of the rest of this training** +] + +.pull-right[ +```{r echo = FALSE, out.width="45%"} +knitr::include_graphics("img/session3/pipes-joke.png") +``` +] + +--- + +class: inverse, center, middle +name: quick-summary-stats + +# Quick summary statistics // სწრაფი შემაჯამებელი სტატისტიკა + +

+ +--- + +# Quick summary statistics + +We learned yesterday how to produce dataframes with results and export them. + +## But what if you want to ... ? + +- ...export results in a different format (example: Excel) + +- ...further customize which rows and columns to display in a result + +- ...format the results you export + +--- + +# Quick summary statistics + +## You will need `modelsummary` and `huxtable` for this + +- These libraries allow you to export results in a customized way + +- We chose a combination of both because together they export a large range of output types and allow fine-grained customization of outputs + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session3/csv-to-excel.png") +``` + +--- + +# Quick summary statistics + +We'll start by introducing the function `datasummary_skim()` from `modelsummary` + +.command[ +## `datasummary_skim(data, output, ...)` + + * **data:** the data set to be summarized, the only required argument + * **output:** the type of output desired + * **... :** additional options allow for formatting customization, such as including notes and titles +] + +For example: + +```{r, eval = F} +datasummary_skim( + data, + output = "default", + type = "numeric", + title = NULL, + notes = NULL, + ... +) +``` + +--- + +# Quick summary statistics + +## Exercise 3: Calculate quick summary statistics + +1. Load `modelsummary` with `library(modelsummary)` + +1. Use `datasummary_skim()` to create a descriptive statistics table for `small_business_all` + +```{r echo=FALSE} +small_business_2019_all <- read.csv("data/small_business_2019_all.csv") +``` + +```{r eval=FALSE} +datasummary_skim(small_business_2019_all) +``` + +--- + +# Quick summary statistics + +You should be seeing this result in the lower right panel of RStudio. + +```{r echo=FALSE} +datasummary_skim(small_business_2019_all) +``` + +--- + +# Quick summary statistics + +- Most functions of `modelsummary` summarize only numeric variables by default + +- To summarize categorical variables, use the argument `type = "categorical"` + +```{r eval=FALSE} +datasummary_skim(small_business_2019_all, type = "categorical") +``` + +--- + +# Quick summary statistics + +```{r echo=FALSE} +datasummary_skim(small_business_2019_all, type = "categorical") +``` + +--- + +# Quick summary statistics + +- `datasummary_skim()` is convenient because it's fast, easy, and shows a lot of information + +```{r echo = FALSE} +datasummary_skim(small_business_2019_all) +``` + +- But what if we wanted to customize what to show? that's when we use `datasummary()` instead, also from the library `modelsummary` + +--- + +class: inverse, center, middle +name: customized-summary-stats + +# Customized summary statistics // მორგებული შემაჯამებელი სტატისტიკა + +

+ +--- + +# Customized summary statistics + +`datasummary()` is very similar to `data_summary_skim()`. The only difference is that it requires a **formula argument**. + +.command[ +## `datasummary(formula, data, output)` + + * **formula:** a two-sided formula to describe the table as: rows ~ columns + * **data:** the data set to be summarized + * **output:** the type of output desired + * **... :** additional options allow for formatting customization + +] + +```{r, eval = F} +datasummary( + var1 + var2 + var3 ~ stat1 + stat2 + stat3 + stat4, + data = data +) +``` + +--- + +# Customized summary statistics + +## Exercise 4: + +Create a summary statistics table showing the nuber of observations, mean, standard deviation, minimum, and maximum for variables `age`, `income`, and `vat_liability` of the dataframe `small_business_2019_all` + +1. Use `datasummary()` for this: + +```{r eval=FALSE} +datasummary( + age + income + vat_liability ~ N + Mean + SD + Min + Max, + small_business_2019_all +) +``` + +--- + +# Customized summary statistics + +```{r echo=FALSE} +datasummary( + age + income + vat_liability ~ N + Mean + SD + Min + Max, + small_business_2019_all +) +``` + +--- + +# Customized summary statistics + +```{r eval=FALSE} +datasummary( + age + income + vat_liability ~ N + Mean + SD + Min + Max, # this is the formula + small_business_2019_all # this is the data +) +``` + +Some notes: + +- The arguments **formula** and **data** are mandatory for `datasummary()` +- All other arguments are optional (like `title = *some-title*`, to add a table title) +- The formula should always be defined as: rows ~ columns +- The rows and columns in the formula are separated by a plus (`+`) sign + +--- + +# Customized summary statistics + +```{r eval=FALSE} +datasummary( + age + income + vat_liability ~ N + Mean + SD + Min + Max, # this is the formula + small_business_2019_all # this is the data +) +``` + +In this exercise we used the statistics N (number of observations), mean, SD (standard deviation), Min (minimum), and Max (maximum). Other statistics you can include are: + +| Statistic | Keyword | +| --------- | ------- | +|Median|`Median`| +|25th percentile|`P25`| +|75th percentile|`P75`| +|In general: percentile XX| `PXX`| +|Small histogram|`Histogram`| + +--- + +class: inverse, center, middle +name: exporting-tables + +# Exporting tables // მაგიდების ექსპორტი + +

+ +--- + +# Exporting tables // მაგიდების ექსპორტი + +Remember that both `datasummary_skim()` and `datasummary()` have an optional argument named *output*? We can use it to specify a file path for an output file. + +For example: + +```{r eval=FALSE} +datasummary_skim(small_business_2019_all, + output = "quick_stats.docx") +``` + +Will export the result to the `Documents` folder (in Windows) in a Word file named `quick_stats.docx` + +--- + +# Exporting tables // მაგიდების ექსპორტი + +The file type of the output is dictated by the file extension. For example: + +| File name | File extension | Output type | +| --------- | -------------- | ----------- | +|"quick_stats.docx"|`.docx`|Word| +|"quick_stats.pptx"|`.pptx`|Power Point| +|"quick_stats.html"|`.html`|HTML (to open in a web explorer)| +|"quick_stats.tex"|`.tex`|Latex| +|"quick_stats.md"|`.md`|Markdown| + +Noticed that we're missing Excel? + +--- + +# Exporting tables // მაგიდების ექსპორტი + +## That's because the functions of `modelsummary` can't export to Excel + +- Nonetheless, we can use the library `huxtable` as an intermediary to transform results from `modelsummary` functions to Excel files + +- `huxtable` is a package for exporting tables in general that allows you to **customize the output you're exporting** + +- We'll know how to use it in the next exercise + +--- + +# Exporting tables // მაგიდების ექსპორტი + +## Exercise 5: Export a table to Excel + +1. Load `huxtable` with `library(huxtable)` + +1. Run the following code to export the result of `datasummary_skim()` to Excel: + +```{r eval=FALSE} +# Store the table in a new object +stats_table <- datasummary_skim(small_business_2019_all, output = "huxtable") + +# Export this new object to Excel with quick_xlsx() +quick_xlsx(stats_table, file = "quick_stats.xlsx") +``` + +--- + +# Exporting tables // მაგიდების ექსპორტი + +Now the result will show in your `Documents` folder + +```{r echo = FALSE, out.width="65%"} +knitr::include_graphics("img/session3/quick-stats-output.png") +``` + +--- + +# Exporting tables // მაგიდების ექსპორტი + +And you can open it with Excel for further customization if you want + +```{r echo = FALSE, out.width="65%"} +knitr::include_graphics("img/session3/quick-stats-excel.png") +``` + +--- + +# Exporting tables // მაგიდების ექსპორტი + +```{r eval=FALSE} +# Store the table in a new object +stats_table <- datasummary_skim(small_business_2019_all, output = "huxtable") + +# Export this new object to Excel with quick_xlsx() +quick_xlsx(stats_table, file = "quick_stats.xlsx") +``` + +Some comments about this code: + +- `quick_xlsx()` is a function from `huxtable`. The first argument is the object we export and the second is the file name. We could also use a file path here + +- Note that we now use the argument `output = "huxtable"` in `datasummary_skim()`. This tells R that the output should be an object type that we can operate later with `huxtable` functions, such as `quick_xlsx()` + +--- + +class: inverse, center, middle +name: customizing-table-outputs + +# Customizing table outputs // ცხრილის შედეგების მორგება + +

+ +--- + +# Customizing table outputs + +The code below shows how the table `stats_table` can be formatted: + +.pull-left[ +```{r eval=FALSE} +# We start with stats_table: +stats_table %>% + # Use first row as table header + set_header_rows(1, TRUE) %>% + # Use first column as row header + set_header_cols(1, TRUE) %>% + # Don't round large numbers + set_number_format(everywhere, 2:ncol(.), "%9.0f") %>% + # Center cells in first row + set_align(1, everywhere, "center") %>% + # Set a theme for quick formatting + theme_basic() +``` +] + +.pull-right[ +.small[ +```{r echo=FALSE, message=FALSE, warning=FALSE} +stats_table <- datasummary_skim(small_business_2019_all, output = "huxtable") + +# Format table + stats_table %>% + set_header_rows(1, TRUE) %>% # Use first row as table header + set_header_cols(1, TRUE) %>% # Use first column as row header + set_number_format(everywhere, 2:ncol(.), "%9.0f") %>% # Don't round large numbers + set_align(1, everywhere, "center") %>% # Centralize cells in first row + theme_basic() # Set a theme for quick formatting +``` +] +] + +--- + +# Customizing table outputs + +## Exercise 6: Export a customized table to Excel + +.pull-left[ +1.- Customize `stats_table` in a new object called `stats_table_custom` + +```{r eval = FALSE} +stats_table_custom <- stats_table %>% + # Use first row as table header + set_header_rows(1, TRUE) %>% + # Use first column as row header + set_header_cols(1, TRUE) %>% + # Don't round large numbers + set_number_format(everywhere, 2:ncol(.), "%9.0f") %>% + # Center cells in first row + set_align(1, everywhere, "center") %>% + # Set a theme for quick formatting + theme_basic() +``` +] + +.pull-right[ +2.- Export `stats_table_custom` to a file named `stats-custom.xlsx` with `quick_xlsx()` + +```{r eval=FALSE} +quick_xlsx( + stats_table_custom, + file = "stats-custom.xlsx" + ) +``` +] + +--- + +# Customizing table outputs + +```{r echo = FALSE, out.width="55%"} +knitr::include_graphics("img/session3/stats-custom.png") +``` + +--- + +# Customizing table outputs + +Notice that here in the first part of the exercise we stored the result in a new object + +```{r eval = FALSE} +stats_table_custom <- stats_table %>% # <---- here + set_header_rows(1, TRUE) %>% + set_header_cols(1, TRUE) %>% + set_number_format(everywhere, 2:ncol(.), "%9.0f") %>% + set_align(1, everywhere, "center") %>% + theme_basic() +``` + +This is the object that we export later with `quick_xslx()` + +```{r eval=FALSE} +quick_xlsx( + stats_table_custom, + file = "stats-custom.xlsx" + ) +``` + +--- + +# Customizing table outputs + +.pull-left[ +**Before:** + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session3/quick-stats-excel.png") +``` +] + +.pull-right[ +**After:** +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session3/stats-custom.png") +``` +] + +--- + +# Customizing table outputs + +We used `theme_basic()` to give a minimalistic, basic theme to the table. Other available themes are: + +```{r echo = FALSE, out.width="75%"} +knitr::include_graphics("img/session3/themes.png") +``` + +--- + +class: inverse, center, middle +name: wrapping-up + +# Wrapping up // შეფუთვა + +

+ +--- + +# Wrapping up // შეფუთვა + +## Save your work! + +Click the floppy disk to save the script you wrote in this session. + +```{r echo = FALSE, out.width="55%"} +knitr::include_graphics("img/session3/save.png") +``` + +--- + +# Wrapping up // შეფუთვა + +## What else is available? + +- This was a short overview of how `modelsummary` and `huxtable` work together to produce professional-looking table outputs in R + +- Other formatting options are: (all from `huxtable`) + +| Formatting | Command | +|------------|---------| +|Export in new Excel tabs instead of new files|`as_Workbook()`| +|Change row names|`add_rownames()`| +|Change column names|`add_colnames()`| +|Cells in bold|`set_bold()`| +|Cells in italics|`set_italic()`| +|Cell font size|`font_size()`| +|Cell color|`background_color()`| + +--- + +# Wrapping up // შეფუთვა + +## What else is available? + +More of this is explained in the libraries documentation: + + + `modelsummary` documentation: https://modelsummary.com/index.html + + `huxtable` documentation: https://hughjonesd.github.io/huxtable/ + +--- + +# Wrapping up // შეფუთვა + +## This session + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session3/data-work-descriptive-stats.png") +``` + +--- + +# Wrapping up // შეფუთვა + +## Next session (last one) + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session4/data-work-data-vis.png") +``` + +--- + +class: inverse, center, middle + +# Thanks! // მადლობა! // ¡Gracias! // Obrigado! + +

diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.html b/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.html new file mode 100644 index 0000000..354d08b --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.html @@ -0,0 +1,1514 @@ + + + + Session 3 - Descriptive statistics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.pdf b/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.pdf new file mode 100644 index 0000000..0cf0dc0 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/3-descriptive-statistics.pdf differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.Rmd b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.Rmd new file mode 100644 index 0000000..241b306 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.Rmd @@ -0,0 +1,1010 @@ +--- +title: "Session 4 - Data visualization" +subtitle: "R training - Georgia RS-WB DIME" +author: "Luis Eduardo San Martin" +date: "The World Bank | September 2023" +output: + xaringan::moon_reader: + css: ["libs/remark-css/default.css", + "libs/remark-css/metropolis.css", + "libs/remark-css/metropolis-fonts.css", + "libs/remark-css/custom.css"] + lib_dir: libs + nature: + ratio: "16:9" + highlightStyle: github + highlightLines: true + countIncrementalSlides: false +--- + +```{r setup, include = FALSE} +# Load packages +library(knitr) +library(xaringanExtra) +library(here) +library(ggplot2) +here::i_am("3-descriptive-statistics.Rmd") +options(htmltools.dir.version = FALSE) +opts_chunk$set( + fig.align = "center", + fig.height = 4, + dpi = 300, + cache = T + ) +xaringanExtra::use_panelset() +xaringanExtra::use_webcam() +xaringanExtra::use_clipboard() +htmltools::tagList( + xaringanExtra::use_clipboard( + success_text = "", + error_text = "" + ), + rmarkdown::html_dependency_font_awesome() +) +xaringanExtra::use_logo( + image_url = here("img", + "lightbulb.png"), + exclude_class = c("inverse", + "hide_logo"), + width = "50px" +) +``` + +```{css, echo = F, eval = T} +@media print { + .has-continuation { + display: block !important; + } +} +``` + +# Table of contents // სარჩევი + +- [Introduction](#intro) +- [The grammar of graphics](#grammar-of-graphics) +- [Bar plots](#bar-plots) +- [Line plots](#line-plots) +- [Text encodings](#text-encodings) +- [Scatter plots](#scatter-plots) +- [Wrapping up](#wrapping-up) + +--- + +class: inverse, center, middle +name: intro + +# Introduction // გაცნობა + +

+ +--- + +# Introduction // გაცნობა + +## About this session + +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session4/data-work-data-vis.png") +``` + +--- + +# Introduction // გაცნობა + +## Data visualization in the data work pipeline + +- Compared to other kind of outputs, data visualization involves an extra step after data wrangling: producing the visualization itself + +- We also us R code to produce data visualizations + +- The input for that code is a wrangled dataframe, dataframe that is ready to be used + +```{r echo = FALSE, out.width="80%"} +knitr::include_graphics("img/session4/data-vis.png") +``` + +--- + +# Introduction // გაცნობა + +## Data visualization in R + +.pull-left[ +- We'll use the package `ggplot2` to create data visualizations + +- `ggplot2` greatly facilitates producing plots in R + + + It follows a syntax based on a description of the plot you want to obtain + + + This syntax is called **grammar of graphics**, a benchmark method of data visualization definition in statistical programming +] + +.pull-right[ +```{r echo = FALSE, out.width="70%"} +knitr::include_graphics("img/session4/ggplot2.png") +``` +] + +--- + +class: inverse, center, middle +name: grammar-of-graphics + +# The grammar of graphics // გრაფიკის გრამატიკა + +

+ +--- + +# The grammar of graphics // გრაფიკის გრამატიკა + +## The grammar of graphics in `ggplot2` + +```{r echo = FALSE, out.width="100%"} +knitr::include_graphics("img/session4/grammar-of-graphics.png") +``` + +--- + +# The grammar of graphics // გრაფიკის გრამატიკა + +## The grammar of graphics in `ggplot2` + +```{r echo = FALSE, out.width="100%"} +knitr::include_graphics("img/session4/grammar-of-graphics2.png") +``` + +--- + +# The grammar of graphics // გრაფიკის გრამატიკა + +## The grammar of graphics in `ggplot2` + +```{r echo = FALSE, out.width="100%"} +knitr::include_graphics("img/session4/grammar-of-graphics3x.png") +``` + +--- + +# The grammar of graphics // გრაფიკის გრამატიკა + +## The grammar of graphics in `ggplot2` + +```{r echo = FALSE, out.width="100%"} +knitr::include_graphics("img/session4/grammar-of-graphics3y.png") +``` + +--- + +# The grammar of graphics // გრაფიკის გრამატიკა + +## The grammar of graphics in `ggplot2` + +```{r echo = FALSE, out.width="100%"} +knitr::include_graphics("img/session4/grammar-of-graphics4gc.png") +``` + +--- + +# The grammar of graphics // გრაფიკის გრამატიკა + +## The grammar of graphics in `ggplot2` + +```{r echo = FALSE, out.width="100%"} +knitr::include_graphics("img/session4/grammar-of-graphics4l.png") +``` + +--- + +class: inverse, center, middle +name: bar-plots + +# Bar plots // ბარის ნაკვეთები + +

+ +--- + +# Bar plots // ბარის ნაკვეთები + +## Exercise 1a: Create a basic bar plot + +1. Open a new script for this session by clicking on `File` >> `New File` >> `R Script` + +1. Load `ggplot2` + +```{r eval=FALSE} +library(ggplot2) +``` + +1. Produce a basic bar plot with the following code: + +```{r eval = FALSE} +ggplot(small_business_2019_all) + + aes(x = taxperiod, + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month") +``` + +--- + +# Bar plots // ბარის ნაკვეთები + +```{r echo=FALSE} +small_business_2019_all <- read.csv("data/small_business_2019_all.csv") +``` + +This result should be displayed in the lower right panel of your RStudio window + +```{r echo=FALSE, out.width="70%"} +ggplot(small_business_2019_all) + + aes(x = taxperiod, + y = income) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month") +``` + +--- + +# Bar plots // ბარის ნაკვეთები + +This plot looks acceptable but it can be improved: + +.pull-left[ +- `taxperiod` is a variable representing months but R doesn't know it and it's showing the x-axis with decimals. We need to tell R that those values shouldn't be changed + +- We can center the title + +- We should add axis labels (instead of just "vat_liability" and "taxperiod") +] + +.pull-right[ +```{r echo=FALSE, out.width="100%"} +ggplot(small_business_2019_all) + + aes(x = taxperiod, + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month") +``` +] + +--- + +# Bar plots // ბარის ნაკვეთები + +## Exercise 1b: Improve your bar plot + +1. Use the following code to improve the aesthetics of your plot + +```{r eval=FALSE} +ggplot(small_business_2019_all) + + aes(x = taxperiod, + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month", + # x-axis title + x = "Month", + # y-axis title + y = "Georgian Lari") + + # telling R not to break the x-axis + scale_x_continuous(breaks = 201901:201912) + + # centering plot title + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Bar plots // ბარის ნაკვეთები + +Now this looks better: + +```{r echo=FALSE, out.width="70%"} +ggplot(small_business_2019_all) + + # transforming taxperiod to categorical value with as.factor() + aes(x = as.factor(taxperiod), + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month", + # x-axis title + x = "Month", + # y-axis title + y = "VAT liability") + + # centering plot title + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Bar plots // ბარის ნაკვეთები + +## Exercise 1c: save your plot + +Now that your plot looks good, you can save it into an output with `ggsave()` + +1. Use this code to save your plot: + +```{r eval = FALSE} +ggsave("vat_liability_small_2019.png", + width = 20, + height = 10, + units = "cm") +``` + +--- + +# Bar plots // ბარის ნაკვეთები + +.pull-left[ +- `ggsave()` by default saves the last plot your produced + +- The first argument in `ggsave()` is the name of the file we save the plot into. We can also use file paths here + +- The rest are optional arguments that define the dimensions of the image you export, it's better to define them so the image has the correct proportions and text size +] + +.pull-right[ +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session4/ggsave-ex1.png") +``` +] + +--- + +# Bar plots // ბარის ნაკვეთები + +## A note about syntax + +- Data visualization usually requires several iterations to add new elements to your initial code and improve your plot + +- `ggplot2` adds new elements to a visualization with the symbol `+` + +- More customization means that your code can easily become quite long. Using spaces and line breaks helps for clarity, but **there is just no way around it** + +- In programming this is known as **heavy syntax** + +.pull-left[ +.small[ +```{r eval = FALSE} +# Exercise 1: +ggplot(small_business_2019_all) + + aes(x = taxperiod, + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month") +``` +] +] + +.pull-right[ +.small[ +```{r eval=FALSE} +# Exercise 2 +ggplot(small_business_2019_all) + + aes(x = as.factor(taxperiod), + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + theme(plot.title = element_text(hjust = 0.5)) +``` +] +] + +--- + +class: inverse, center, middle +name: line-plots + +# Line plots // ხაზის ნაკვეთები + +

+ +--- + +# Line plots // ხაზის ნაკვეთები + +- In data visualization, we call **encodings** to the geometry selected to represent the data visually + +- In the previous examples, we did that when we used `geom_col()`. This tells R that our encoding to represent the data is **bars** (also called columns) + +- `ggplot2` has several different options for encodings in data visualization, for example: **lines** + +- The encoding for lines in `ggplot2` is `geom_lines()` + +--- + +# Line plots // ხაზის ნაკვეთები + +- Line plots are a nice option to encode numeric values and include different categories of a second variable at the same time + +```{r echo=FALSE, warning=FALSE, message=FALSE} +df_group_month <- small_business_2019_all %>% + select(group, taxperiod, vat_liability) %>% + group_by(group, taxperiod) %>% + summarize(total = sum(vat_liability)) +``` + +```{r echo=FALSE, out.width="65%"} +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(legend.text = element_text(size = 7), # don't forget the comma! + axis.text.x=element_text(size=6)) +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +- However, they also usually require some additional data wrangling compared to bar plots: data should be collapsed at the level specified in the x-axis and grouping variable + +- This is going to be clearer in the next exercise. The plot we'll produce is below + +```{r echo=FALSE, out.width="65%"} +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(legend.text = element_text(size = 7), # don't forget the comma! + axis.text.x=element_text(size=6)) +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +## Exercise 2a: Collapse your data at the month-group level + +Use the following code to create a dataframe collapsed at the month-group level and calculate the total VAT liability for each group in each month + +```{r eval = FALSE} +df_group_month <- small_business_2019_all %>% + select(group, taxperiod, vat_liability) %>% + group_by(group, taxperiod) %>% + summarize(total = sum(vat_liability)) +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +.pull-left[ +The result will look like this, you can explore it with `View(df_group_month)`. +] + +.pull-right[ +```{r echo = FALSE, out.width="85%"} +knitr::include_graphics("img/session4/df-group-month.png") +``` +] + +--- + +# Line plots // ხაზის ნაკვეთები + +## Exercise 2b: Create a line plot of VAT liability by month and group + +```{r eval=FALSE} +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +Your result possibly looks like this: + +```{r echo=FALSE, warning=FALSE, message=FALSE, out.width="75%"} +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +Something looks off, doesn't it? We need to **make the legend labels and x-axis texts smaller** for them without overlapping each other and to **remove the centering of the title** so it's not cropped + +```{r echo=FALSE, out.width="75%"} +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +## Exercise 2c: Continue improving your plot + +1. Add the argument `legend.text=element_text(size=7)` inside `theme()` to decrease the legend text size +1. Add the argument `axis.text.x=element_text(size=6)` inside `theme()` to decrease the x-axis text size + + note that both arguments need to be separated by a comma +1. Remove `plot.title = element_text(hjust = 0.5)` from `theme()` to remove the centering of the plot title + +The result should be this: + +```{eval=FALSE} +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(legend.text = element_text(size = 7), # don't forget the comma! + axis.text.x=element_text(size=6)) +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +```{r echo=FALSE, out.width="75%"} +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(legend.text = element_text(size = 7), # don't forget the comma! + axis.text.x=element_text(size=6)) +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +## Exercise 2d: save your plot + +Use this code to save your plot: + +```{r eval=FALSE} +ggsave("vat_liability_small_2019_by_group.png", + width = 20, + height = 10, + units = "cm") +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +```{r echo = FALSE, out.width="50%"} +knitr::include_graphics("img/session4/ggsave-ex2.png") +``` + +--- + +# Line plots // ხაზის ნაკვეთები + +Choosing the right encoding for your data can be tricky. It depends on what you want to show in your plot and how much information you want it to show + + + Bar plots show less information than line plots in general, but they are good for cases when you have only one numeric variable and one categorical variable to show + + Line plots can show more information and includes multiple groups to add an additional dimension to your data, but they are not visually appealing when your data varies a lot from one category to another + +.pull-left[ +```{r echo=FALSE, out.width="100%"} +ggplot(small_business_2019_all) + + aes(x = as.factor(taxperiod), + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + theme(plot.title = element_text(hjust = 0.5)) +``` +] + +.pull-right[ +```{r echo=FALSE, out.width="100%"} +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(legend.text = element_text(size = 7), # don't forget the comma! + axis.text.x=element_text(size=6)) +``` +] + +--- + +class: inverse, center, middle +name: text-encodings + +# Text encodings // ტექსტური დაშიფვრები + +

+ +--- + +# Text encodings // ტექსტური დაშიფვრები + +- Geometric shapes such as bars and plots are not the only way to encode data in plots + +- We can also use text directly to represent information in the plot as in the example below. This is called **text encodings** + +- Text encodings can be combined with geometric encodings to highlight information or provide important additional details to your visualization + +```{r echo=FALSE} + df_month <- small_business_2019_all %>% + select(taxperiod, vat_liability) %>% + group_by(taxperiod) %>% + summarize(total = sum(vat_liability)) +``` + +```{r echo=FALSE, out.width="57%"} + ggplot(df_month) + + aes(x = taxperiod, + y = total) + + geom_col() + + geom_text(aes(label = round(total)), + position = position_dodge(width = 1), + vjust = -0.5, + size = 3) + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Text encodings // ტექსტური დაშიფვრები + +- Using text encodings in a bar plot is nice + +- However, it also requires additional data wrangling: the data needs to be collapsed at the same level of the x-axis to be able to add encodings + +- We'll see this in the next exercise + +```{r echo=FALSE, out.width="57%"} + ggplot(df_month) + + aes(x = taxperiod, + y = total) + + geom_col() + + geom_text(aes(label = round(total)), + position = position_dodge(width = 1), + vjust = -0.5, + size = 3) + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Text encodings // ტექსტური დაშიფვრები + +## Exercise 3a: Collapse your data at the month level + +This is similar to what we did for exercise 2a, except that this time the collapsing is at month level instead of the month-group level. Use the code below to store the collapsed dataframe in `month_df` + +```{r eval=FALSE} +df_month <- small_business_2019_all %>% + select(taxperiod, vat_liability) %>% + group_by(taxperiod) %>% + summarize(total = sum(vat_liability)) +``` + +--- + +# Text encodings // ტექსტური დაშიფვრები + +This is the result, you can use `View(df_month)` to display it + +```{r echo = FALSE, out.width="55%"} +knitr::include_graphics("img/session4/df-month.png") +``` + +--- + +# Text encodings // ტექსტური დაშიფვრები + +## Exercise 3b: Add encodings to your bar plot + +Use the collapsed dataframe `df_month` and the former code from exercise 1 to add encodings to your bar plot. The result is the code below: + +```{r eval=FALSE} + ggplot(df_month) + + aes(x = taxperiod, + y = total) + + geom_col() + + # Note that the text encodings are added here + geom_text(aes(label = total), + position = position_dodge(width = 1), + vjust = -0.5, + size = 3) + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Text encodings // ტექსტური დაშიფვრები + +This is result is nice but the text encodings have several decimal places. We can improve it by rounding `total` with the function `round()` + +```{r echo=FALSE, out.width="75%"} + ggplot(df_month) + + aes(x = taxperiod, + y = total) + + geom_col() + + # Note that the text encodings are added here + geom_text(aes(label = total), + position = position_dodge(width = 1), + vjust = -0.5, + size = 3) + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Text encodings // ტექსტური დაშიფვრები + +## Exercise 3c: Improve your plot once again + +Replace `total` with `round(total)` in `geom_text()`. The result should be: + +```{r eval=FALSE} + ggplot(df_month) + + aes(x = taxperiod, + y = total) + + geom_col() + + geom_text(aes(label = round(total)), # <--- the change goes here + position = position_dodge(width = 1), + vjust = -0.5, + size = 3) + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Text encodings // ტექსტური დაშიფვრები + +```{r echo=FALSE, out.width="75%"} + ggplot(df_month) + + aes(x = taxperiod, + y = total) + + geom_col() + + geom_text(aes(label = round(total)), # <--- the change goes here + position = position_dodge(width = 1), + vjust = -0.5, + size = 3) + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Text encodings // ტექსტური დაშიფვრები + +## Don't forget to save your plot! + +Use this code to save this last plot: + +```{r eval=FALSE} +ggsave("vat_liability_small_2019_text.png", + width = 20, + height = 10, + units = "cm") +``` + +--- + +class: inverse, center, middle +name: scatter-plots + +# Scatter plots // გაფანტავს ნაკვეთებს + +

+ +--- + +# Scatter plots // გაფანტავს ნაკვეთებს + +- We're going to explore one more type of encoding for data visualizations: **scatter plots** + +- Scatter plots are useful when you have two continuous numeric variables and want to show that there might to a correlation between them or visualize outliers (values that stand out from the rest because they are very extreme) + +- We use the encoding `geom_line()` for scatterplots + +```{r echo=FALSE, out.width="55%"} +ggplot(small_business_2019_all) + + aes(x = age, + y = vat_liability) + + geom_point() + + labs(title = "VAT liability versus age for small businesses in 2019", + x = "Age of firm (years)", + y = "VAT liability") + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Scatter plots // გაფანტავს ნაკვეთებს + +## Exercise 4: Create a scatter plot + +Use the following code to reproduce the scatter plot of the last slide: + +```{r eval=FALSE} +ggplot(small_business_2019_all) + + aes(x = age, + y = vat_liability) + + geom_point() + + labs(title = "VAT liability versus age for small businesses in 2019", + x = "Age of firm (years)", + y = "VAT liability") + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Scatter plots // გაფანტავს ნაკვეთებს + +```{r echo=FALSE, out.width="80%"} +ggplot(small_business_2019_all) + + aes(x = age, + y = vat_liability) + + geom_point() + + labs(title = "VAT liability versus age for small businesses in 2019", + x = "Age of firm (years)", + y = "VAT liability") + + theme(plot.title = element_text(hjust = 0.5)) +``` + +--- + +# Scatter plots // გაფანტავს ნაკვეთებს + +Lastly, remember to save your scatter plot with: + +```{r eval=FALSE} +ggsave("scatter_age_vat.png", + width = 20, + height = 10, + units = "cm")) +``` + +--- + +class: inverse, center, middle +name: wrapping-up + +# Wrapping up // შეფუთვა + +

+ +--- + +# Wrapping up // შეფუთვა + +## Other encodings in `ggplot2` + +This table lists several of the most popular encoding types in `ggplot2` + +| Encoding | Function in `ggplot2` | +| -------- | --------------------- | +| Bars | `geom_col()` | +| Lines | `geom_line()` | +| Points (scatterplot) | `geom_point()` | +| Area | `geom_area()` | +| Histogram | `geom_histogram()` | +| Floating labels (texts) | `geom_text()` | +| Box plot | `geom_boxplot()` | +| Pie chart | `geom_bar() + coord_polar()` | +| Smoothed line | `geom_smooth()` | + +--- + +# Wrapping up // შეფუთვა + +## Save your code! + +Click on the floppy disk to save your code in a location that you will remember. + +```{r echo = FALSE, out.width="55%"} +knitr::include_graphics("img/session4/save.png") +``` + +--- + +# Wrapping up // შეფუთვა + +## Data work pipeline + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session4/data-work-final.png") +``` + +--- + +# Wrapping up // შეფუთვა + +## Looking ahead + +```{r echo = FALSE, out.width="95%"} +knitr::include_graphics("img/session4/data-work-expanded.png") +``` + +--- + +# Wrapping up // შეფუთვა + +## Looking ahead + +- [Connecting R with SQL databases](https://solutions.posit.co/connections/db/getting-started/connect-to-database/). Some libraries: + + `dbConnect` + + `dbplyr` + + `DBI` + +- [More on data wrangling](https://raw.githack.com/worldbank/dime-r-training/main/Presentations/03-data-wrangling.html#1). More libraries: + + `tidyr` + + `janitor` + +- [More on data visualization](https://raw.githack.com/worldbank/dime-r-training/main/Presentations/04-data-visualization.html#1) + +--- + +class: inverse, center, middle + +# Thanks! // მადლობა! // ¡Gracias! // Obrigado! + +

diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.html b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.html new file mode 100644 index 0000000..cc542b1 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.html @@ -0,0 +1,938 @@ + + + + Session 4 - Data visualization + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.pdf b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.pdf new file mode 100644 index 0000000..e687856 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization.pdf differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/out.width-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/out.width-1.png new file mode 100644 index 0000000..53a8ec1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/out.width-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-10-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-10-1.png new file mode 100644 index 0000000..10c07f5 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-10-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-12-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-12-1.png new file mode 100644 index 0000000..a9f2b93 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-12-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-14-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-14-1.png new file mode 100644 index 0000000..2119597 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-14-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-15-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-15-1.png new file mode 100644 index 0000000..10c07f5 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-15-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-16-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-16-1.png new file mode 100644 index 0000000..ad9edb1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-16-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-17-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-17-1.png new file mode 100644 index 0000000..a9f2b93 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-17-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-19-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-19-1.png new file mode 100644 index 0000000..1bebad3 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-19-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-20-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-20-1.png new file mode 100644 index 0000000..1bebad3 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-20-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-21-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-21-1.png new file mode 100644 index 0000000..53a8ec1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-21-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-22-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-22-1.png new file mode 100644 index 0000000..71df132 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-22-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-23-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-23-1.png new file mode 100644 index 0000000..53a8ec1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-23-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-24-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-24-1.png new file mode 100644 index 0000000..53a8ec1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-24-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-25-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-25-1.png new file mode 100644 index 0000000..1bebad3 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-25-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-26-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-26-1.png new file mode 100644 index 0000000..53a8ec1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-26-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-27-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-27-1.png new file mode 100644 index 0000000..71df132 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-27-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-28-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-28-1.png new file mode 100644 index 0000000..1bebad3 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-28-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-29-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-29-1.png new file mode 100644 index 0000000..1bebad3 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-29-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-30-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-30-1.png new file mode 100644 index 0000000..53a8ec1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-30-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-31-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-31-1.png new file mode 100644 index 0000000..b845b87 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-31-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-32-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-32-1.png new file mode 100644 index 0000000..2850e79 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-32-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-33-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-33-1.png new file mode 100644 index 0000000..71df132 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-33-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-34-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-34-1.png new file mode 100644 index 0000000..53a8ec1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-34-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-36-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-36-1.png new file mode 100644 index 0000000..b845b87 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-36-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-37-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-37-1.png new file mode 100644 index 0000000..b845b87 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-37-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-39-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-39-1.png new file mode 100644 index 0000000..2850e79 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-39-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-41-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-41-1.png new file mode 100644 index 0000000..bcb2618 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-41-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-43-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-43-1.png new file mode 100644 index 0000000..b845b87 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-43-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-45-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-45-1.png new file mode 100644 index 0000000..2850e79 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-45-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-47-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-47-1.png new file mode 100644 index 0000000..2850e79 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-47-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-9-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-9-1.png new file mode 100644 index 0000000..2119597 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/4-data-visualization_files/figure-html/unnamed-chunk-9-1.png differ diff --git "a/Presentations-Brazil-SEFAZ/Feb 2025/Sess\303\243o 1 - Introdu\303\247\303\243o ao R.pdf" "b/Presentations-Brazil-SEFAZ/Feb 2025/Sess\303\243o 1 - Introdu\303\247\303\243o ao R.pdf" new file mode 100644 index 0000000..c31ff12 Binary files /dev/null and "b/Presentations-Brazil-SEFAZ/Feb 2025/Sess\303\243o 1 - Introdu\303\247\303\243o ao R.pdf" differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session1-br.R b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session1-br.R new file mode 100644 index 0000000..a737a6e --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session1-br.R @@ -0,0 +1,22 @@ +# Exercise 2 +x1 <- 100 +x2 <- 50 +x3 <- x1 + x2 +print(x3) + +# Exercise 4 +df_pelotas <- subset(small_business_2019_br, + region == "Pelotas") +View(df_pelotas) + +# Exercise 5 +v1 <- c(3, 8, 10) +v2 <- c(7, 2, 5) +result1 <- v1 + v2 +result2 <- v2 + 10 +print(result1) +print(result2) + +# Exercise 6 +summary_table <- summary(small_business_2019_br) +print(summary_table) \ No newline at end of file diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session1.R b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session1.R new file mode 100644 index 0000000..48c6201 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session1.R @@ -0,0 +1,22 @@ +# Exercise 2 +x1 <- 100 +x2 <- 50 +x3 <- x1 + x2 +print(x3) + +# Exercise 4 +df_guria <- subset(small_business_2019, + region == "Guria") +View(df_guria) + +# Exercise 5 +v1 <- c(3, 8, 10) +v2 <- c(7, 2, 5) +result1 <- v1 + v2 +result2 <- v2 + 10 +print(result1) +print(result2) + +# Exercise 6 +summary_table <- summary(small_business_2019) +print(summary_table) \ No newline at end of file diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session2.R b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session2.R new file mode 100644 index 0000000..51e10e7 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session2.R @@ -0,0 +1,17 @@ +# Data +small_business_2019 <- read.csv("data/small_business_2019.csv") +small_business_2019_age <- read.csv("data/small_business_2019_age.csv") + +# Exercise 3 +library(dplyr) + +# Exercise 5 +temp1 <- filter(small_business_2019, region == "Tbilisi") +temp2 <- arrange(temp1, -income) +df_tbilisi_50 <- filter(temp2, row_number() <= 50) + +# Exercise 6 +temp1 <- select(small_business_2019, modified_id, income) +temp2 <- inner_join(temp1, small_business_2019_age, by = "modified_id") +temp3 <- filter(temp2, age > 5) +total_income <- colSums(select(temp3, income)) diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session3.R b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session3.R new file mode 100644 index 0000000..74a1d32 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session3.R @@ -0,0 +1,40 @@ +# Data +small_business_2019_all <- read.csv("data/small_business_2019_all.csv") +View(small_business_2019_all) + +# Exercise 1 +#install.packages("modelsummary") +#install.packages("huxtable") + +# Exercise 2 +df_tbilisi_50 <- filter(small_business_2019, + region == "Tbilisi") %>% + arrange(-income) %>% + filter(row_number() <= 50) + +# Exercise 3 +library(modelsummary) +datasummary_skim(small_business_2019_all) + +# Exercise 4 +datasummary( + age + income + vat_liability ~ N + Mean + SD + Min + Max, + small_business_2019_all +) + +# Exercise 5 +library(huxtable) +stats_table <- datasummary_skim(small_business_2019_all, output = "huxtable") +quick_xlsx(stats_table, file = "quick_stats.xlsx") + +# Exercise 6 +stats_table_custom <- stats_table %>% + set_header_rows(1, TRUE) %>% + set_header_cols(1, TRUE) %>% + set_number_format(everywhere, 2:ncol(.), "%9.0f") %>% + set_align(1, everywhere, "center") %>% + theme_basic() +quick_xlsx( + stats_table_custom, + file = "stats-custom.xlsx" +) \ No newline at end of file diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session4.R b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session4.R new file mode 100644 index 0000000..8d0ddf7 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/exercises-session4.R @@ -0,0 +1,125 @@ +# Data +small_business_2019_all <- read.csv("data/small_business_2019_all.csv") + +# Exercise 1a +library(ggplot2) +ggplot(small_business_2019_all) + + aes(x = taxperiod, + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month") + +# Exercise 1b +ggplot(small_business_2019_all) + + aes(x = taxperiod, + y = vat_liability) + + geom_col() + + labs(title = "Total VAT liability of small businesses in 2019 by month", + # x-axis title + x = "Month", + # y-axis title + y = "Georgian Lari") + + # telling R not to break the x-axis + scale_x_continuous(breaks = 201901:201912) + + # centering plot title + theme(plot.title = element_text(hjust = 0.5)) + +# Exercise 1c +ggsave("vat_liability_small_2019.png", + width = 20, + height = 10, + units = "cm") + +# Exercise 2a +df_group_month <- small_business_2019_all %>% + select(group, taxperiod, vat_liability) %>% + group_by(group, taxperiod) %>% + summarize(total = sum(vat_liability)) + +# Exercise 2b +ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) + +# Exercise 2c + ggplot(df_group_month) + + aes(x = taxperiod, + y = total) + + geom_line(aes(color = group)) + + labs(title = "Total VAT liability of small businesses in 2019 by experiment group", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(legend.text = element_text(size = 7), + axis.text.x = element_text(size = 6)) + +# Exercise 2d + ggsave("vat_liability_small_2019_by_group.png", + width = 20, + height = 10, + units = "cm") + +# Exercise 3a +df_month <- small_business_2019_all %>% + select(taxperiod, vat_liability) %>% + group_by(taxperiod) %>% + summarize(total = sum(vat_liability)) + +# Exercise 3b +ggplot(df_month) + + aes(x = taxperiod, + y = total) + + geom_col() + + geom_text(aes(label = total), + position = position_dodge(width = 1), + vjust = -0.5, + size = 3) + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) + +# Exercise 3c + ggplot(df_month) + + aes(x = taxperiod, + y = total) + + geom_col() + + geom_text(aes(label = round(total)), + position = position_dodge(width = 1), + vjust = -0.5, + size = 3) + + labs(title = "Total VAT liability of small businesses in 2019 by month", + x = "Month", + y = "Georgian Lari") + + scale_x_continuous(breaks = 201901:201912) + + theme(plot.title = element_text(hjust = 0.5)) + +# Saving +ggsave("vat_liability_small_2019_text.png", + width = 20, + height = 10, + units = "cm") + +# Exercise 4 + ggplot(small_business_2019_all) + + aes(x = age, + y = vat_liability) + + geom_point() + + labs(title = "VAT liability versus age for small businesses in 2019", + x = "Age of firm (years)", + y = "VAT liability") + + theme(plot.title = element_text(hjust = 0.5)) + +# Saving + ggsave("scatter_age_vat.png", + width = 20, + height = 10, + units = "cm") + \ No newline at end of file diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/code-comments.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/code-comments.png new file mode 100644 index 0000000..69a63a1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/code-comments.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console-subset-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console-subset-br.png new file mode 100644 index 0000000..7d3ea71 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console-subset-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console-subset.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console-subset.png new file mode 100644 index 0000000..7768297 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console-subset.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console.png new file mode 100644 index 0000000..de73416 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/console.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer-br.png new file mode 100644 index 0000000..77e76d4 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer-subset.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer-subset.png new file mode 100644 index 0000000..9e41b00 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer-subset.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer.png new file mode 100644 index 0000000..e088127 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer2-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer2-br.png new file mode 100644 index 0000000..cbe22e4 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer2-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer2.png new file mode 100644 index 0000000..9839a04 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-viewer2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-and-cooking.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-and-cooking.png new file mode 100644 index 0000000..ee0b56a Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-and-cooking.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-script.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-script.png new file mode 100644 index 0000000..8ea92c0 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-script.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-with-instructions.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-with-instructions.png new file mode 100644 index 0000000..c081947 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work-with-instructions.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work.png new file mode 100644 index 0000000..af7011d Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/data-work.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/day1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/day1.png new file mode 100644 index 0000000..febf750 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/day1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/downloads-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/downloads-1.png new file mode 100644 index 0000000..3e31cd2 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/downloads-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/downloads.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/downloads.png new file mode 100644 index 0000000..1b64c0b Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/downloads.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/element-wise-vector.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/element-wise-vector.png new file mode 100644 index 0000000..791036f Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/element-wise-vector.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment.png new file mode 100644 index 0000000..91b0078 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment2.png new file mode 100644 index 0000000..1121759 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment3-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment3-br.png new file mode 100644 index 0000000..3a9ea11 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment3-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment3.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment3.png new file mode 100644 index 0000000..96e6e29 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/environment3.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-2-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-2-br.png new file mode 100644 index 0000000..d412221 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-2-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-2.png new file mode 100644 index 0000000..37375b1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-br.png new file mode 100644 index 0000000..067c5ac Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5.png new file mode 100644 index 0000000..338a6bb Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex5.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex6-environment.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex6-environment.png new file mode 100644 index 0000000..c10fc3d Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex6-environment.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex6.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex6.png new file mode 100644 index 0000000..4afd43b Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/ex6.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise1-2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise1-2.png new file mode 100644 index 0000000..48c999a Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise1-2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise1.png new file mode 100644 index 0000000..b5b0164 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise2-annotated.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise2-annotated.png new file mode 100644 index 0000000..77230b8 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise2-annotated.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise2.png new file mode 100644 index 0000000..e241ffe Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise3-annotated.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise3-annotated.png new file mode 100644 index 0000000..63eea0c Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise3-annotated.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise3.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise3.png new file mode 100644 index 0000000..1833490 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/exercise3.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/file-selection.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/file-selection.png new file mode 100644 index 0000000..88c677c Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/file-selection.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-br.png new file mode 100644 index 0000000..a5d1298 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-stored-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-stored-br.png new file mode 100644 index 0000000..0dba9b0 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-stored-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-stored.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-stored.png new file mode 100644 index 0000000..1a2134f Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-stored.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-syntax-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-syntax-br.png new file mode 100644 index 0000000..41832b2 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-syntax-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-syntax.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-syntax.png new file mode 100644 index 0000000..e92fa17 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function-syntax.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function.png new file mode 100644 index 0000000..bca557d Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/function.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import3-1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import3-1.png new file mode 100644 index 0000000..e0a6d73 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import3-1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import3.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import3.png new file mode 100644 index 0000000..1d02623 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import3.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import_data1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import_data1.png new file mode 100644 index 0000000..3e9febb Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/import_data1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/lightbulb.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/lightbulb.png new file mode 100644 index 0000000..9b19558 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/lightbulb.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/multiple-dataframes-br.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/multiple-dataframes-br.png new file mode 100644 index 0000000..173b4d1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/multiple-dataframes-br.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/multiple-dataframes.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/multiple-dataframes.png new file mode 100644 index 0000000..c0c88a5 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/multiple-dataframes.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/osf-screenshot.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/osf-screenshot.png new file mode 100644 index 0000000..f151678 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/osf-screenshot.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/r-rstudio.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/r-rstudio.png new file mode 100644 index 0000000..7eae5ed Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/r-rstudio.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/rstudio-panels.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/rstudio-panels.png new file mode 100644 index 0000000..6cbac26 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/rstudio-panels.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/rstudio.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/rstudio.png new file mode 100644 index 0000000..89d9514 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/rstudio.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/same-operation-vector.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/same-operation-vector.png new file mode 100644 index 0000000..d4b2b38 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/same-operation-vector.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/save.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/save.png new file mode 100644 index 0000000..c6e72f7 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/save.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/script.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/script.png new file mode 100644 index 0000000..b8e2954 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/script.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/session1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/session1.png new file mode 100644 index 0000000..879171b Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/session1.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/session2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/session2.png new file mode 100644 index 0000000..6de6db5 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/session2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/software-logos.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/software-logos.png new file mode 100644 index 0000000..4997edf Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/software-logos.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/subset-annotated.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/subset-annotated.png new file mode 100644 index 0000000..cc85b85 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/subset-annotated.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/subset2-annotated.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/subset2-annotated.png new file mode 100644 index 0000000..9871d64 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/subset2-annotated.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/summary-result.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/summary-result.png new file mode 100644 index 0000000..5313f83 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session1/summary-result.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/code-workflow.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/code-workflow.png new file mode 100644 index 0000000..355348b Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/code-workflow.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/console.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/console.png new file mode 100644 index 0000000..de73416 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/console.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer-subset.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer-subset.png new file mode 100644 index 0000000..9e41b00 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer-subset.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer.png new file mode 100644 index 0000000..730a1e2 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer2.png new file mode 100644 index 0000000..32fee86 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-viewer2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-vis.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-vis.png new file mode 100644 index 0000000..f652ff9 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-vis.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-and-cooking.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-and-cooking.png new file mode 100644 index 0000000..7ea39bb Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-and-cooking.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-day-2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-day-2.png new file mode 100644 index 0000000..160848d Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-day-2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-excel-r.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-excel-r.png new file mode 100644 index 0000000..b43a69e Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-excel-r.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-expanded.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-expanded.png new file mode 100644 index 0000000..a5f0380 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-expanded.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final-table.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final-table.png new file mode 100644 index 0000000..ef329dc Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final-table.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final.png new file mode 100644 index 0000000..a4e14e1 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final2.png new file mode 100644 index 0000000..6051f56 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-final2.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-progress.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-progress.png new file mode 100644 index 0000000..366b28e Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-progress.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-r-excel.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-r-excel.png new file mode 100644 index 0000000..452f26e Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-r-excel.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-script.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-script.png new file mode 100644 index 0000000..8ea92c0 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-script.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-with-instructions.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-with-instructions.png new file mode 100644 index 0000000..82f88c3 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work-with-instructions.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work.png new file mode 100644 index 0000000..f00f424 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-work.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling-planning.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling-planning.png new file mode 100644 index 0000000..693438c Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling-planning.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling-reasoning.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling-reasoning.png new file mode 100644 index 0000000..63b34c5 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling-reasoning.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling.png new file mode 100644 index 0000000..57feb43 Binary files /dev/null and b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling.png differ diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling1.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling2.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling3.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/data-wrangling3.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/day1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/day1.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/day2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/day2.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/download-data.PNG b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/download-data.PNG new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/dplyr-install.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/dplyr-install.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/dplyr.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/dplyr.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/environment.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/environment.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/environment2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/environment2.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex4.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex4.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex5-2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex5-2.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex5-environment.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex5-environment.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex5-result.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex5-result.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex5.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/ex5.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/excel-to-r.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/excel-to-r.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise1.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise2-annotated.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise2-annotated.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise2.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise3-annotated.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise3-annotated.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise3.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exercise3.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exported-csv.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exported-csv.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exported-plot.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/exported-plot.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/file-selection.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/file-selection.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/filtering-sorting-planning.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/filtering-sorting-planning.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/filtering-sorting1.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/filtering-sorting1.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/filtering-sorting2.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/filtering-sorting2.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/filtering-sorting3.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/filtering-sorting3.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/function-stored.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/function-stored.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/function.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session2/function.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session3/csv-to-excel.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session3/csv-to-excel.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session3/data-work-descriptive-stats.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session3/data-work-descriptive-stats.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session3/df.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session3/df.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session4/data-vis.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session4/data-vis.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session4/data-work-data-vis.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session4/data-work-data-vis.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/img/session4/data-work-expanded.png b/Presentations-Brazil-SEFAZ/Feb 2025/img/session4/data-work-expanded.png new file mode 100644 index 0000000..e69de29 diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/clipboard/clipboard.min.js b/Presentations-Brazil-SEFAZ/Feb 2025/libs/clipboard/clipboard.min.js new file mode 100644 index 0000000..28650f3 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/clipboard/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-transition-delay: 0s; + transition-delay: 0s; + -webkit-transition-duration: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-arrows-to-circle::before { + content: "\e4bd"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-at::before { + content: "\40"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-info::before { + content: "\f129"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-explosion::before { + content: "\e4e9"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-building-un::before { + content: "\e4d9"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-anchor-circle-check::before { + content: "\e4aa"; } + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-arrows-up-to-line::before { + content: "\e4c2"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-bridge-circle-check::before { + content: "\e4c9"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-school-circle-exclamation::before { + content: "\e56c"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-users-rectangle::before { + content: "\e594"; } + +.fa-people-roof::before { + content: "\e537"; } + +.fa-people-line::before { + content: "\e534"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-truck-plane::before { + content: "\e58f"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-jar-wheat::before { + content: "\e517"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-file-circle-exclamation::before { + content: "\e4eb"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-k::before { + content: "\4b"; } + +.fa-landmark-flag::before { + content: "\e51c"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-vial-virus::before { + content: "\e597"; } + +.fa-sheet-plastic::before { + content: "\e571"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-person-arrow-up-from-line::before { + content: "\e539"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-person-drowning::before { + content: "\e545"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-w::before { + content: "\57"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-trowel-bricks::before { + content: "\e58a"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-tent-arrow-left-right::before { + content: "\e57f"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-mars-and-venus-burst::before { + content: "\e523"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-sun-plant-wilt::before { + content: "\e57a"; } + +.fa-toilets-portable::before { + content: "\e584"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-house-fire::before { + content: "\e50c"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-file-circle-question::before { + content: "\e4ef"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-people-group::before { + content: "\e533"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-film::before { + content: "\f008"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-people-robbery::before { + content: "\e536"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-school-circle-xmark::before { + content: "\e56d"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-road-spikes::before { + content: "\e568"; } + +.fa-fire-burner::before { + content: "\e4f1"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-wheat-awn::before { + content: "\e2cd"; } + +.fa-wheat-alt::before { + content: "\e2cd"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-hands-holding-child::before { + content: "\e4fa"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-house-medical-circle-xmark::before { + content: "\e513"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-house-flood-water::before { + content: "\e50e"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-bridge-lock::before { + content: "\e4cc"; } + +.fa-sack-dollar::before { + content: "\f81d"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-heart-circle-minus::before { + content: "\e4ff"; } + +.fa-hourglass-half::before { + content: "\f252"; } + +.fa-hourglass-2::before { + content: "\f252"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-person-rays::before { + content: "\e54d"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-flask-vial::before { + content: "\e4f3"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-om::before { + content: "\f679"; } + +.fa-worm::before { + content: "\e599"; } + +.fa-house-circle-xmark::before { + content: "\e50b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-road-circle-check::before { + content: "\e564"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-land-mine-on::before { + content: "\e51b"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-i::before { + content: "\49"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-v::before { + content: "\56"; } + +.fa-bangladeshi-taka-sign::before { + content: "\e2e6"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-staff-snake::before { + content: "\e579"; } + +.fa-rod-asclepius::before { + content: "\e579"; } + +.fa-rod-snake::before { + content: "\e579"; } + +.fa-staff-aesculapius::before { + content: "\e579"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-road-barrier::before { + content: "\e562"; } + +.fa-school::before { + content: "\f549"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-q::before { + content: "\51"; } + +.fa-g::before { + content: "\47"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-helmet-un::before { + content: "\e503"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-blank::before { + content: "\f07b"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-chart-simple::before { + content: "\e473"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-e::before { + content: "\45"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } + +.fa-user::before { + content: "\f007"; } + +.fa-school-circle-check::before { + content: "\e56b"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-building-user::before { + content: "\e4da"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-key::before { + content: "\f084"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-person-half-dress::before { + content: "\e548"; } + +.fa-road-bridge::before { + content: "\e563"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-c::before { + content: "\43"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-building-lock::before { + content: "\e4d6"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-house-flag::before { + content: "\e50d"; } + +.fa-person-circle-minus::before { + content: "\e540"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-star::before { + content: "\f005"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-box::before { + content: "\f466"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-mobile-retro::before { + content: "\e527"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-hands-bound::before { + content: "\e4f9"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-plane-circle-exclamation::before { + content: "\e556"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-server::before { + content: "\f233"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-shop-lock::before { + content: "\e4a5"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-building-wheat::before { + content: "\e4db"; } + +.fa-person-breastfeeding::before { + content: "\e53a"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-l::before { + content: "\4c"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-heart-circle-plus::before { + content: "\e500"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-road-circle-xmark::before { + content: "\e566"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-house-circle-exclamation::before { + content: "\e50a"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-anchor-lock::before { + content: "\e4ad"; } + +.fa-building-ngo::before { + content: "\e4d7"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-building-circle-check::before { + content: "\e4d2"; } + +.fa-person-chalkboard::before { + content: "\e53d"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-cloud-showers-water::before { + content: "\e4e4"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-train::before { + content: "\f238"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-bucket::before { + content: "\e4cf"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-cow::before { + content: "\f6c8"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-folder-closed::before { + content: "\e185"; } + +.fa-house-tsunami::before { + content: "\e515"; } + +.fa-square-nfi::before { + content: "\e576"; } + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-plate-wheat::before { + content: "\e55a"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-person-shelter::before { + content: "\e54f"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-helicopter-symbol::before { + content: "\e502"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-volcano::before { + content: "\f770"; } + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-square-person-confined::before { + content: "\e577"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-location-pin-lock::before { + content: "\e51f"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-hill-avalanche::before { + content: "\e507"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-burst::before { + content: "\e4dc"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-money-bills::before { + content: "\e1f3"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-arrows-turn-right::before { + content: "\e4c0"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-ferry::before { + content: "\e4ea"; } + +.fa-arrows-down-to-people::before { + content: "\e4b9"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-boxes-packing::before { + content: "\e4c7"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-group-arrows-rotate::before { + content: "\e4f6"; } + +.fa-bowl-food::before { + content: "\e4c6"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-cloud-bolt::before { + content: "\f76c"; } + +.fa-thunderstorm::before { + content: "\f76c"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-house-lock::before { + content: "\e510"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-children::before { + content: "\e4e1"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-mattress-pillow::before { + content: "\e525"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-shield-halved::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-envelope-circle-check::before { + content: "\e4e8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-arrows-to-dot::before { + content: "\e4be"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-heart-circle-check::before { + content: "\e4fd"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-z::before { + content: "\5a"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-road-lock::before { + content: "\e567"; } + +.fa-a::before { + content: "\41"; } + +.fa-temperature-arrow-down::before { + content: "\e03f"; } + +.fa-temperature-down::before { + content: "\e03f"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-p::before { + content: "\50"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-locust::before { + content: "\e520"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-person-dress-burst::before { + content: "\e544"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-question::before { + content: "\3f"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-code::before { + content: "\f121"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-building-circle-exclamation::before { + content: "\e4d3"; } + +.fa-magnifying-glass-chart::before { + content: "\e522"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-cubes-stacked::before { + content: "\e4e6"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-f::before { + content: "\46"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-road::before { + content: "\f018"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-person-circle-plus::before { + content: "\e541"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-sack-xmark::before { + content: "\e56a"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-fish-fins::before { + content: "\e4f2"; } + +.fa-building-flag::before { + content: "\e4d5"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-plane-circle-check::before { + content: "\e555"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-mask-ventilator::before { + content: "\e524"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-person-circle-question::before { + content: "\e542"; } + +.fa-h::before { + content: "\48"; } + +.fa-tarp::before { + content: "\e57b"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-arrows-to-eye::before { + content: "\e4bf"; } + +.fa-plug-circle-bolt::before { + content: "\e55b"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-bottle-water::before { + content: "\e4c5"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-kitchen-set::before { + content: "\e51a"; } + +.fa-r::before { + content: "\52"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-shield-dog::before { + content: "\e573"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-money-bill-transfer::before { + content: "\e528"; } + +.fa-money-bill-trend-up::before { + content: "\e529"; } + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-users-rays::before { + content: "\e593"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-bugs::before { + content: "\e4d0"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-book-bookmark::before { + content: "\e0bb"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-bridge::before { + content: "\e4c8"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-truck-front::before { + content: "\e2b7"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } + +.fa-truck-field::before { + content: "\e58d"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-clipboard-question::before { + content: "\e4e3"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-file-circle-minus::before { + content: "\e4ed"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-house-signal::before { + content: "\e012"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-faucet-drip::before { + content: "\e006"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-house-medical-flag::before { + content: "\e514"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-person-military-to-person::before { + content: "\e54c"; } + +.fa-file-shield::before { + content: "\e4f0"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-tower-observation::before { + content: "\e586"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-heart-circle-xmark::before { + content: "\e501"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-plant-wilt::before { + content: "\e5aa"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-child-dress::before { + content: "\e59c"; } + +.fa-users-between-lines::before { + content: "\e591"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-child-reaching::before { + content: "\e59d"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-mosquito-net::before { + content: "\e52c"; } + +.fa-bridge-water::before { + content: "\e4ce"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-person-digging::before { + content: "\f85e"; } + +.fa-digging::before { + content: "\f85e"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-person-circle-xmark::before { + content: "\e543"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-j::before { + content: "\4a"; } + +.fa-users-viewfinder::before { + content: "\e595"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-o::before { + content: "\4f"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-book-tanakh::before { + content: "\f827"; } + +.fa-tanakh::before { + content: "\f827"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-clipboard-user::before { + content: "\f7f3"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-plane-lock::before { + content: "\e558"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-arrow-right-to-city::before { + content: "\e4b3"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-circle-nodes::before { + content: "\e4e2"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-truck-field-un::before { + content: "\e58e"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f254"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-square-virus::before { + content: "\e578"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-car-on::before { + content: "\e4dd"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-water::before { + content: "\f773"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-person-cane::before { + content: "\e53c"; } + +.fa-tent::before { + content: "\e57d"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-money-bill-wheat::before { + content: "\e52a"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-tarp-droplet::before { + content: "\e57c"; } + +.fa-house-medical-circle-check::before { + content: "\e511"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-plug-circle-check::before { + content: "\e55c"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-mosquito::before { + content: "\e52b"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-person-military-rifle::before { + content: "\e54b"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-plug-circle-plus::before { + content: "\e55f"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-u::before { + content: "\55"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-s::before { + content: "\53"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-mobile-screen::before { + content: "\f3cf"; } + +.fa-mobile-android-alt::before { + content: "\f3cf"; } + +.fa-plane-up::before { + content: "\e22d"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-mountain-city::before { + content: "\e52e"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-person-pregnant::before { + content: "\e31e"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-laptop-file::before { + content: "\e51d"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-person-rifle::before { + content: "\e54e"; } + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-images::before { + content: "\f302"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-people-pulling::before { + content: "\e535"; } + +.fa-n::before { + content: "\4e"; } + +.fa-cable-car::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-building-circle-xmark::before { + content: "\e4d4"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-arrows-down-to-line::before { + content: "\e4b8"; } + +.fa-download::before { + content: "\f019"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-file-circle-check::before { + content: "\e5a0"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-b::before { + content: "\42"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-bowl-rice::before { + content: "\e2eb"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-hurricane::before { + content: "\f751"; } + +.fa-mound::before { + content: "\e52d"; } + +.fa-toilet-portable::before { + content: "\e583"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-shield-cat::before { + content: "\e572"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-glass-water::before { + content: "\e4f4"; } + +.fa-oil-well::before { + content: "\e532"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-plane-circle-xmark::before { + content: "\e557"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-bore-hole::before { + content: "\e4c3"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-car-tunnel::before { + content: "\e4de"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-person-through-window::before { + content: "\e5a9"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-hands-holding-circle::before { + content: "\e4fb"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-hand-holding-hand::before { + content: "\e4f7"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-mountain-sun::before { + content: "\e52f"; } + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-truck-droplet::before { + content: "\e58c"; } + +.fa-file-circle-xmark::before { + content: "\e5a1"; } + +.fa-temperature-arrow-up::before { + content: "\e040"; } + +.fa-temperature-up::before { + content: "\e040"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-plug-circle-xmark::before { + content: "\e560"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-person-burst::before { + content: "\e53b"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-section::before { + content: "\e447"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-font::before { + content: "\f031"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-y::before { + content: "\59"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-child-combatant::before { + content: "\e4e0"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-map::before { + content: "\f279"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-notdef::before { + content: "\e1fe"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-display::before { + content: "\e163"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-award::before { + content: "\f559"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-music::before { + content: "\f001"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-t::before { + content: "\54"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-haykal::before { + content: "\f666"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-file-circle-plus::before { + content: "\e494"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-m::before { + content: "\4d"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-share::before { + content: "\f064"; } + +.fa-arrow-turn-right::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-train-tram::before { + content: "\e5b4"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-x::before { + content: "\58"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-d::before { + content: "\44"; } + +.fa-stapler::before { + content: "\e5af"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } +:root, :host { + --fa-style-family-brands: 'Font Awesome 6 Brands'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-weight: 400; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-square-js:before { + content: "\f3b9"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-square-reddit:before { + content: "\f1a2"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-square-font-awesome:before { + content: "\e5ad"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-square-instagram:before { + content: "\e055"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-square-hacker-news:before { + content: "\f3af"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-threads:before { + content: "\e618"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-square-snapchat:before { + content: "\f2ad"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-square-viadeo:before { + content: "\f2aa"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-square-dribbble:before { + content: "\f397"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-node:before { + content: "\f419"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-debian:before { + content: "\e60b"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-square-twitter:before { + content: "\f081"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-square-youtube:before { + content: "\f431"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-rendact:before { + content: "\f3e4"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-nfc-directional:before { + content: "\e530"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-meta:before { + content: "\e49b"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-square-steam:before { + content: "\f1b7"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-square-vimeo:before { + content: "\f194"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-square-github:before { + content: "\f092"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-square-threads:before { + content: "\e619"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-square-gitlab:before { + content: "\e5ae"; } + +.fa-gitlab-square:before { + content: "\e5ae"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-square-odnoklassniki:before { + content: "\f264"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-square-pinterest:before { + content: "\f0d3"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-nfc-symbol:before { + content: "\e531"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-square-google-plus:before { + content: "\f0d4"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-square-xing:before { + content: "\f169"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-x-twitter:before { + content: "\e61b"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-square-pied-piper:before { + content: "\e01e"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-square-facebook:before { + content: "\f082"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-square-lastfm:before { + content: "\f203"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-screenpal:before { + content: "\e570"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-square-behance:before { + content: "\f1b5"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-space-awesome:before { + content: "\e5ac"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-square-git:before { + content: "\f1d2"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-square-tumblr:before { + content: "\f174"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-php:before { + content: "\f457"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-stubber:before { + content: "\e5c7"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-odysee:before { + content: "\e5c6"; } + +.fa-square-whatsapp:before { + content: "\f40c"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-square-x-twitter:before { + content: "\e61a"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-weight: 400; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); } diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/all.min.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/all.min.css new file mode 100644 index 0000000..6604a06 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/all.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} + +.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"} +.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }@font-face{font-family:"FontAwesome";font-display:block;src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }@font-face{font-family:"FontAwesome";font-display:block;src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }@font-face{font-family:"FontAwesome";font-display:block;src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }@font-face{font-family:"FontAwesome";font-display:block;src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); } \ No newline at end of file diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/v4-shims.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/v4-shims.css new file mode 100644 index 0000000..a85953d --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/v4-shims.css @@ -0,0 +1,2194 @@ +/*! + * Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ +.fa.fa-glass:before { + content: "\f000"; } + +.fa.fa-envelope-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-envelope-o:before { + content: "\f0e0"; } + +.fa.fa-star-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-o:before { + content: "\f005"; } + +.fa.fa-remove:before { + content: "\f00d"; } + +.fa.fa-close:before { + content: "\f00d"; } + +.fa.fa-gear:before { + content: "\f013"; } + +.fa.fa-trash-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-trash-o:before { + content: "\f2ed"; } + +.fa.fa-home:before { + content: "\f015"; } + +.fa.fa-file-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-o:before { + content: "\f15b"; } + +.fa.fa-clock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-clock-o:before { + content: "\f017"; } + +.fa.fa-arrow-circle-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-down:before { + content: "\f358"; } + +.fa.fa-arrow-circle-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-up:before { + content: "\f35b"; } + +.fa.fa-play-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-play-circle-o:before { + content: "\f144"; } + +.fa.fa-repeat:before { + content: "\f01e"; } + +.fa.fa-rotate-right:before { + content: "\f01e"; } + +.fa.fa-refresh:before { + content: "\f021"; } + +.fa.fa-list-alt { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-list-alt:before { + content: "\f022"; } + +.fa.fa-dedent:before { + content: "\f03b"; } + +.fa.fa-video-camera:before { + content: "\f03d"; } + +.fa.fa-picture-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-picture-o:before { + content: "\f03e"; } + +.fa.fa-photo { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-photo:before { + content: "\f03e"; } + +.fa.fa-image { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-image:before { + content: "\f03e"; } + +.fa.fa-map-marker:before { + content: "\f3c5"; } + +.fa.fa-pencil-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-pencil-square-o:before { + content: "\f044"; } + +.fa.fa-edit { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-edit:before { + content: "\f044"; } + +.fa.fa-share-square-o:before { + content: "\f14d"; } + +.fa.fa-check-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-check-square-o:before { + content: "\f14a"; } + +.fa.fa-arrows:before { + content: "\f0b2"; } + +.fa.fa-times-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-circle-o:before { + content: "\f057"; } + +.fa.fa-check-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-check-circle-o:before { + content: "\f058"; } + +.fa.fa-mail-forward:before { + content: "\f064"; } + +.fa.fa-expand:before { + content: "\f424"; } + +.fa.fa-compress:before { + content: "\f422"; } + +.fa.fa-eye { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-eye-slash { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-warning:before { + content: "\f071"; } + +.fa.fa-calendar:before { + content: "\f073"; } + +.fa.fa-arrows-v:before { + content: "\f338"; } + +.fa.fa-arrows-h:before { + content: "\f337"; } + +.fa.fa-bar-chart:before { + content: "\e0e3"; } + +.fa.fa-bar-chart-o:before { + content: "\e0e3"; } + +.fa.fa-twitter-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-twitter-square:before { + content: "\f081"; } + +.fa.fa-facebook-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-square:before { + content: "\f082"; } + +.fa.fa-gears:before { + content: "\f085"; } + +.fa.fa-thumbs-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-up:before { + content: "\f164"; } + +.fa.fa-thumbs-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-down:before { + content: "\f165"; } + +.fa.fa-heart-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-heart-o:before { + content: "\f004"; } + +.fa.fa-sign-out:before { + content: "\f2f5"; } + +.fa.fa-linkedin-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linkedin-square:before { + content: "\f08c"; } + +.fa.fa-thumb-tack:before { + content: "\f08d"; } + +.fa.fa-external-link:before { + content: "\f35d"; } + +.fa.fa-sign-in:before { + content: "\f2f6"; } + +.fa.fa-github-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-github-square:before { + content: "\f092"; } + +.fa.fa-lemon-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-lemon-o:before { + content: "\f094"; } + +.fa.fa-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-square-o:before { + content: "\f0c8"; } + +.fa.fa-bookmark-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bookmark-o:before { + content: "\f02e"; } + +.fa.fa-twitter { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook:before { + content: "\f39e"; } + +.fa.fa-facebook-f { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-f:before { + content: "\f39e"; } + +.fa.fa-github { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-credit-card { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-feed:before { + content: "\f09e"; } + +.fa.fa-hdd-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hdd-o:before { + content: "\f0a0"; } + +.fa.fa-hand-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-right:before { + content: "\f0a4"; } + +.fa.fa-hand-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-left:before { + content: "\f0a5"; } + +.fa.fa-hand-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-up:before { + content: "\f0a6"; } + +.fa.fa-hand-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-down:before { + content: "\f0a7"; } + +.fa.fa-globe:before { + content: "\f57d"; } + +.fa.fa-tasks:before { + content: "\f828"; } + +.fa.fa-arrows-alt:before { + content: "\f31e"; } + +.fa.fa-group:before { + content: "\f0c0"; } + +.fa.fa-chain:before { + content: "\f0c1"; } + +.fa.fa-cut:before { + content: "\f0c4"; } + +.fa.fa-files-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-files-o:before { + content: "\f0c5"; } + +.fa.fa-floppy-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-floppy-o:before { + content: "\f0c7"; } + +.fa.fa-save { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-save:before { + content: "\f0c7"; } + +.fa.fa-navicon:before { + content: "\f0c9"; } + +.fa.fa-reorder:before { + content: "\f0c9"; } + +.fa.fa-magic:before { + content: "\e2ca"; } + +.fa.fa-pinterest { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa.fa-google-plus-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa.fa-google-plus { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus:before { + content: "\f0d5"; } + +.fa.fa-money:before { + content: "\f3d1"; } + +.fa.fa-unsorted:before { + content: "\f0dc"; } + +.fa.fa-sort-desc:before { + content: "\f0dd"; } + +.fa.fa-sort-asc:before { + content: "\f0de"; } + +.fa.fa-linkedin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linkedin:before { + content: "\f0e1"; } + +.fa.fa-rotate-left:before { + content: "\f0e2"; } + +.fa.fa-legal:before { + content: "\f0e3"; } + +.fa.fa-tachometer:before { + content: "\f625"; } + +.fa.fa-dashboard:before { + content: "\f625"; } + +.fa.fa-comment-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-comment-o:before { + content: "\f075"; } + +.fa.fa-comments-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-comments-o:before { + content: "\f086"; } + +.fa.fa-flash:before { + content: "\f0e7"; } + +.fa.fa-clipboard:before { + content: "\f0ea"; } + +.fa.fa-lightbulb-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-lightbulb-o:before { + content: "\f0eb"; } + +.fa.fa-exchange:before { + content: "\f362"; } + +.fa.fa-cloud-download:before { + content: "\f0ed"; } + +.fa.fa-cloud-upload:before { + content: "\f0ee"; } + +.fa.fa-bell-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bell-o:before { + content: "\f0f3"; } + +.fa.fa-cutlery:before { + content: "\f2e7"; } + +.fa.fa-file-text-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-text-o:before { + content: "\f15c"; } + +.fa.fa-building-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-building-o:before { + content: "\f1ad"; } + +.fa.fa-hospital-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hospital-o:before { + content: "\f0f8"; } + +.fa.fa-tablet:before { + content: "\f3fa"; } + +.fa.fa-mobile:before { + content: "\f3cd"; } + +.fa.fa-mobile-phone:before { + content: "\f3cd"; } + +.fa.fa-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-circle-o:before { + content: "\f111"; } + +.fa.fa-mail-reply:before { + content: "\f3e5"; } + +.fa.fa-github-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-folder-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-folder-o:before { + content: "\f07b"; } + +.fa.fa-folder-open-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-folder-open-o:before { + content: "\f07c"; } + +.fa.fa-smile-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-smile-o:before { + content: "\f118"; } + +.fa.fa-frown-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-frown-o:before { + content: "\f119"; } + +.fa.fa-meh-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-meh-o:before { + content: "\f11a"; } + +.fa.fa-keyboard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-keyboard-o:before { + content: "\f11c"; } + +.fa.fa-flag-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-flag-o:before { + content: "\f024"; } + +.fa.fa-mail-reply-all:before { + content: "\f122"; } + +.fa.fa-star-half-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-o:before { + content: "\f5c0"; } + +.fa.fa-star-half-empty { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-empty:before { + content: "\f5c0"; } + +.fa.fa-star-half-full { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-full:before { + content: "\f5c0"; } + +.fa.fa-code-fork:before { + content: "\f126"; } + +.fa.fa-chain-broken:before { + content: "\f127"; } + +.fa.fa-unlink:before { + content: "\f127"; } + +.fa.fa-calendar-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-o:before { + content: "\f133"; } + +.fa.fa-maxcdn { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-html5 { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-css3 { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-unlock-alt:before { + content: "\f09c"; } + +.fa.fa-minus-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-minus-square-o:before { + content: "\f146"; } + +.fa.fa-level-up:before { + content: "\f3bf"; } + +.fa.fa-level-down:before { + content: "\f3be"; } + +.fa.fa-pencil-square:before { + content: "\f14b"; } + +.fa.fa-external-link-square:before { + content: "\f360"; } + +.fa.fa-compass { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down:before { + content: "\f150"; } + +.fa.fa-toggle-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-down:before { + content: "\f150"; } + +.fa.fa-caret-square-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-up:before { + content: "\f151"; } + +.fa.fa-toggle-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-up:before { + content: "\f151"; } + +.fa.fa-caret-square-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-right:before { + content: "\f152"; } + +.fa.fa-toggle-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-right:before { + content: "\f152"; } + +.fa.fa-eur:before { + content: "\f153"; } + +.fa.fa-euro:before { + content: "\f153"; } + +.fa.fa-gbp:before { + content: "\f154"; } + +.fa.fa-usd:before { + content: "\24"; } + +.fa.fa-dollar:before { + content: "\24"; } + +.fa.fa-inr:before { + content: "\e1bc"; } + +.fa.fa-rupee:before { + content: "\e1bc"; } + +.fa.fa-jpy:before { + content: "\f157"; } + +.fa.fa-cny:before { + content: "\f157"; } + +.fa.fa-rmb:before { + content: "\f157"; } + +.fa.fa-yen:before { + content: "\f157"; } + +.fa.fa-rub:before { + content: "\f158"; } + +.fa.fa-ruble:before { + content: "\f158"; } + +.fa.fa-rouble:before { + content: "\f158"; } + +.fa.fa-krw:before { + content: "\f159"; } + +.fa.fa-won:before { + content: "\f159"; } + +.fa.fa-btc { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin:before { + content: "\f15a"; } + +.fa.fa-file-text:before { + content: "\f15c"; } + +.fa.fa-sort-alpha-asc:before { + content: "\f15d"; } + +.fa.fa-sort-alpha-desc:before { + content: "\f881"; } + +.fa.fa-sort-amount-asc:before { + content: "\f884"; } + +.fa.fa-sort-amount-desc:before { + content: "\f160"; } + +.fa.fa-sort-numeric-asc:before { + content: "\f162"; } + +.fa.fa-sort-numeric-desc:before { + content: "\f886"; } + +.fa.fa-youtube-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-youtube-square:before { + content: "\f431"; } + +.fa.fa-youtube { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing-square:before { + content: "\f169"; } + +.fa.fa-youtube-play { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-youtube-play:before { + content: "\f167"; } + +.fa.fa-dropbox { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stack-overflow { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-instagram { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-flickr { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-adn { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square:before { + content: "\f171"; } + +.fa.fa-tumblr { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square:before { + content: "\f174"; } + +.fa.fa-long-arrow-down:before { + content: "\f309"; } + +.fa.fa-long-arrow-up:before { + content: "\f30c"; } + +.fa.fa-long-arrow-left:before { + content: "\f30a"; } + +.fa.fa-long-arrow-right:before { + content: "\f30b"; } + +.fa.fa-apple { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-windows { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-android { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linux { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-dribbble { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-skype { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-foursquare { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-trello { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gratipay { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gittip { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gittip:before { + content: "\f184"; } + +.fa.fa-sun-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sun-o:before { + content: "\f185"; } + +.fa.fa-moon-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-moon-o:before { + content: "\f186"; } + +.fa.fa-vk { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-weibo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-renren { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pagelines { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stack-exchange { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right:before { + content: "\f35a"; } + +.fa.fa-arrow-circle-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-left:before { + content: "\f359"; } + +.fa.fa-caret-square-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-left:before { + content: "\f191"; } + +.fa.fa-toggle-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-left:before { + content: "\f191"; } + +.fa.fa-dot-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-dot-circle-o:before { + content: "\f192"; } + +.fa.fa-vimeo-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo-square:before { + content: "\f194"; } + +.fa.fa-try:before { + content: "\e2bb"; } + +.fa.fa-turkish-lira:before { + content: "\e2bb"; } + +.fa.fa-plus-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-plus-square-o:before { + content: "\f0fe"; } + +.fa.fa-slack { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wordpress { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-openid { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-institution:before { + content: "\f19c"; } + +.fa.fa-bank:before { + content: "\f19c"; } + +.fa.fa-mortar-board:before { + content: "\f19d"; } + +.fa.fa-yahoo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square:before { + content: "\f1a2"; } + +.fa.fa-stumbleupon-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stumbleupon { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-delicious { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-digg { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-pp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-drupal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-joomla { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance-square:before { + content: "\f1b5"; } + +.fa.fa-steam { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-steam-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-steam-square:before { + content: "\f1b7"; } + +.fa.fa-automobile:before { + content: "\f1b9"; } + +.fa.fa-cab:before { + content: "\f1ba"; } + +.fa.fa-spotify { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-deviantart { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-soundcloud { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-file-pdf-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-pdf-o:before { + content: "\f1c1"; } + +.fa.fa-file-word-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-word-o:before { + content: "\f1c2"; } + +.fa.fa-file-excel-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-excel-o:before { + content: "\f1c3"; } + +.fa.fa-file-powerpoint-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-powerpoint-o:before { + content: "\f1c4"; } + +.fa.fa-file-image-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-image-o:before { + content: "\f1c5"; } + +.fa.fa-file-photo-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-photo-o:before { + content: "\f1c5"; } + +.fa.fa-file-picture-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-picture-o:before { + content: "\f1c5"; } + +.fa.fa-file-archive-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-archive-o:before { + content: "\f1c6"; } + +.fa.fa-file-zip-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-zip-o:before { + content: "\f1c6"; } + +.fa.fa-file-audio-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-audio-o:before { + content: "\f1c7"; } + +.fa.fa-file-sound-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-sound-o:before { + content: "\f1c7"; } + +.fa.fa-file-video-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-video-o:before { + content: "\f1c8"; } + +.fa.fa-file-movie-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-movie-o:before { + content: "\f1c8"; } + +.fa.fa-file-code-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-code-o:before { + content: "\f1c9"; } + +.fa.fa-vine { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-codepen { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-jsfiddle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-life-bouy:before { + content: "\f1cd"; } + +.fa.fa-life-buoy:before { + content: "\f1cd"; } + +.fa.fa-life-saver:before { + content: "\f1cd"; } + +.fa.fa-support:before { + content: "\f1cd"; } + +.fa.fa-circle-o-notch:before { + content: "\f1ce"; } + +.fa.fa-rebel { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ra { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ra:before { + content: "\f1d0"; } + +.fa.fa-resistance { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-resistance:before { + content: "\f1d0"; } + +.fa.fa-empire { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ge { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ge:before { + content: "\f1d1"; } + +.fa.fa-git-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-git-square:before { + content: "\f1d2"; } + +.fa.fa-git { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-hacker-news { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square:before { + content: "\f1d4"; } + +.fa.fa-yc-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc-square:before { + content: "\f1d4"; } + +.fa.fa-tencent-weibo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-qq { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-weixin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wechat { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wechat:before { + content: "\f1d7"; } + +.fa.fa-send:before { + content: "\f1d8"; } + +.fa.fa-paper-plane-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-paper-plane-o:before { + content: "\f1d8"; } + +.fa.fa-send-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-send-o:before { + content: "\f1d8"; } + +.fa.fa-circle-thin { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-circle-thin:before { + content: "\f111"; } + +.fa.fa-header:before { + content: "\f1dc"; } + +.fa.fa-futbol-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-futbol-o:before { + content: "\f1e3"; } + +.fa.fa-soccer-ball-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-soccer-ball-o:before { + content: "\f1e3"; } + +.fa.fa-slideshare { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-twitch { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yelp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-newspaper-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-newspaper-o:before { + content: "\f1ea"; } + +.fa.fa-paypal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-wallet { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-visa { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-mastercard { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-discover { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-amex { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-paypal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-stripe { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bell-slash-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bell-slash-o:before { + content: "\f1f6"; } + +.fa.fa-trash:before { + content: "\f2ed"; } + +.fa.fa-copyright { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-eyedropper:before { + content: "\f1fb"; } + +.fa.fa-area-chart:before { + content: "\f1fe"; } + +.fa.fa-pie-chart:before { + content: "\f200"; } + +.fa.fa-line-chart:before { + content: "\f201"; } + +.fa.fa-lastfm { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square:before { + content: "\f203"; } + +.fa.fa-ioxhost { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-angellist { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-cc:before { + content: "\f20a"; } + +.fa.fa-ils:before { + content: "\f20b"; } + +.fa.fa-shekel:before { + content: "\f20b"; } + +.fa.fa-sheqel:before { + content: "\f20b"; } + +.fa.fa-buysellads { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-connectdevelop { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-dashcube { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-forumbee { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-leanpub { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-sellsy { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-shirtsinbulk { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-simplybuilt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-skyatlas { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-diamond { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-diamond:before { + content: "\f3a5"; } + +.fa.fa-transgender:before { + content: "\f224"; } + +.fa.fa-intersex:before { + content: "\f224"; } + +.fa.fa-transgender-alt:before { + content: "\f225"; } + +.fa.fa-facebook-official { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-official:before { + content: "\f09a"; } + +.fa.fa-pinterest-p { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-whatsapp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-hotel:before { + content: "\f236"; } + +.fa.fa-viacoin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-medium { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc:before { + content: "\f23b"; } + +.fa.fa-optin-monster { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-opencart { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-expeditedssl { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-battery-4:before { + content: "\f240"; } + +.fa.fa-battery:before { + content: "\f240"; } + +.fa.fa-battery-3:before { + content: "\f241"; } + +.fa.fa-battery-2:before { + content: "\f242"; } + +.fa.fa-battery-1:before { + content: "\f243"; } + +.fa.fa-battery-0:before { + content: "\f244"; } + +.fa.fa-object-group { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-object-ungroup { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o:before { + content: "\f249"; } + +.fa.fa-cc-jcb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-diners-club { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-clone { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hourglass-o:before { + content: "\f254"; } + +.fa.fa-hourglass-1:before { + content: "\f251"; } + +.fa.fa-hourglass-2:before { + content: "\f252"; } + +.fa.fa-hourglass-3:before { + content: "\f253"; } + +.fa.fa-hand-rock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-rock-o:before { + content: "\f255"; } + +.fa.fa-hand-grab-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-grab-o:before { + content: "\f255"; } + +.fa.fa-hand-paper-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-paper-o:before { + content: "\f256"; } + +.fa.fa-hand-stop-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-stop-o:before { + content: "\f256"; } + +.fa.fa-hand-scissors-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-scissors-o:before { + content: "\f257"; } + +.fa.fa-hand-lizard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-lizard-o:before { + content: "\f258"; } + +.fa.fa-hand-spock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-spock-o:before { + content: "\f259"; } + +.fa.fa-hand-pointer-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-pointer-o:before { + content: "\f25a"; } + +.fa.fa-hand-peace-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-peace-o:before { + content: "\f25b"; } + +.fa.fa-registered { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-creative-commons { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gg { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gg-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa.fa-get-pocket { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wikipedia-w { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-safari { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-chrome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-firefox { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-opera { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-internet-explorer { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-television:before { + content: "\f26c"; } + +.fa.fa-contao { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-500px { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-amazon { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-calendar-plus-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-plus-o:before { + content: "\f271"; } + +.fa.fa-calendar-minus-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-minus-o:before { + content: "\f272"; } + +.fa.fa-calendar-times-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-times-o:before { + content: "\f273"; } + +.fa.fa-calendar-check-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-check-o:before { + content: "\f274"; } + +.fa.fa-map-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-map-o:before { + content: "\f279"; } + +.fa.fa-commenting:before { + content: "\f4ad"; } + +.fa.fa-commenting-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-commenting-o:before { + content: "\f4ad"; } + +.fa.fa-houzz { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo:before { + content: "\f27d"; } + +.fa.fa-black-tie { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fonticons { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-alien { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-edge { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-credit-card-alt:before { + content: "\f09d"; } + +.fa.fa-codiepie { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-modx { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fort-awesome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-usb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-product-hunt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-mixcloud { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-scribd { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pause-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-pause-circle-o:before { + content: "\f28b"; } + +.fa.fa-stop-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-stop-circle-o:before { + content: "\f28d"; } + +.fa.fa-bluetooth { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bluetooth-b { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gitlab { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpbeginner { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpforms { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-envira { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt:before { + content: "\f368"; } + +.fa.fa-question-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-question-circle-o:before { + content: "\f059"; } + +.fa.fa-volume-control-phone:before { + content: "\f2a0"; } + +.fa.fa-asl-interpreting:before { + content: "\f2a3"; } + +.fa.fa-deafness:before { + content: "\f2a4"; } + +.fa.fa-hard-of-hearing:before { + content: "\f2a4"; } + +.fa.fa-glide { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-glide-g { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-signing:before { + content: "\f2a7"; } + +.fa.fa-viadeo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa.fa-snapchat { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa.fa-snapchat-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa.fa-pied-piper { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-first-order { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yoast { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-themeisle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official:before { + content: "\f2b3"; } + +.fa.fa-google-plus-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-circle:before { + content: "\f2b3"; } + +.fa.fa-font-awesome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fa { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fa:before { + content: "\f2b4"; } + +.fa.fa-handshake-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-handshake-o:before { + content: "\f2b5"; } + +.fa.fa-envelope-open-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-envelope-open-o:before { + content: "\f2b6"; } + +.fa.fa-linode { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-address-book-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-address-book-o:before { + content: "\f2b9"; } + +.fa.fa-vcard:before { + content: "\f2bb"; } + +.fa.fa-address-card-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-address-card-o:before { + content: "\f2bb"; } + +.fa.fa-vcard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-vcard-o:before { + content: "\f2bb"; } + +.fa.fa-user-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-user-circle-o:before { + content: "\f2bd"; } + +.fa.fa-user-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-user-o:before { + content: "\f007"; } + +.fa.fa-id-badge { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-drivers-license:before { + content: "\f2c2"; } + +.fa.fa-id-card-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-id-card-o:before { + content: "\f2c2"; } + +.fa.fa-drivers-license-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-drivers-license-o:before { + content: "\f2c2"; } + +.fa.fa-quora { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-free-code-camp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-telegram { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-thermometer-4:before { + content: "\f2c7"; } + +.fa.fa-thermometer:before { + content: "\f2c7"; } + +.fa.fa-thermometer-3:before { + content: "\f2c8"; } + +.fa.fa-thermometer-2:before { + content: "\f2c9"; } + +.fa.fa-thermometer-1:before { + content: "\f2ca"; } + +.fa.fa-thermometer-0:before { + content: "\f2cb"; } + +.fa.fa-bathtub:before { + content: "\f2cd"; } + +.fa.fa-s15:before { + content: "\f2cd"; } + +.fa.fa-window-maximize { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-window-restore { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle:before { + content: "\f410"; } + +.fa.fa-window-close-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-window-close-o:before { + content: "\f410"; } + +.fa.fa-times-rectangle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle-o:before { + content: "\f410"; } + +.fa.fa-bandcamp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-grav { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-etsy { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-imdb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ravelry { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-eercast { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-eercast:before { + content: "\f2da"; } + +.fa.fa-snowflake-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-snowflake-o:before { + content: "\f2dc"; } + +.fa.fa-superpowers { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpexplorer { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-meetup { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/v4-shims.min.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/v4-shims.min.css new file mode 100644 index 0000000..64e4e8d --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/font-awesome/css/v4-shims.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ +.fa.fa-glass:before{content:"\f000"}.fa.fa-envelope-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-star-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-home:before{content:"\f015"}.fa.fa-file-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-list-alt:before{content:"\f022"}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-edit{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-edit:before{content:"\f044"}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart-o:before,.fa.fa-bar-chart:before{content:"\e0e3"}.fa.fa-twitter-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-twitter-square:before{content:"\f081"}.fa.fa-facebook-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-square:before{content:"\f082"}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-github-square:before{content:"\f092"}.fa.fa-lemon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-globe:before{content:"\f57d"}.fa.fa-tasks:before{content:"\f828"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-cut:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-save{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-save:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-magic:before{content:"\e2ca"}.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pinterest-square:before{content:"\f0d3"}.fa.fa-google-plus-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-square:before{content:"\f0d4"}.fa.fa-google-plus{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f625"}.fa.fa-comment-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard:before{content:"\f0ea"}.fa.fa-lightbulb-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f0ed"}.fa.fa-cloud-upload:before{content:"\f0ee"}.fa.fa-bell-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f5c0"}.fa.fa-star-half-empty{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f5c0"}.fa.fa-star-half-full{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f5c0"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before,.fa.fa-unlink:before{content:"\f127"}.fa.fa-calendar-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-unlock-alt:before{content:"\f09c"}.fa.fa-minus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\24"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\e1bc"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f884"}.fa.fa-sort-amount-desc:before{content:"\f160"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-square:before{content:"\f431"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-xing-square:before{content:"\f169"}.fa.fa-youtube-play{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-tumblr-square:before{content:"\f174"}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo-square:before{content:"\f194"}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\e2bb"}.fa.fa-plus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-yahoo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-reddit-square:before{content:"\f1a2"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-behance-square:before{content:"\f1b5"}.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-steam-square:before{content:"\f1b7"}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-life-bouy:before,.fa.fa-life-buoy:before,.fa.fa-life-saver:before,.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-git-square:before{content:"\f1d2"}.fa.fa-git,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-futbol-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-lastfm-square:before{content:"\f203"}.fa.fa-angellist,.fa.fa-ioxhost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before,.fa.fa-transgender:before{content:"\f224"}.fa.fa-transgender-alt:before{content:"\f225"}.fa.fa-facebook-official{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-clone{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-odnoklassniki-square:before{content:"\f264"}.fa.fa-chrome,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-internet-explorer,.fa.fa-opera,.fa.fa-safari,.fa.fa-wikipedia-w{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo,.fa.fa-viadeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-viadeo-square:before{content:"\f2aa"}.fa.fa-snapchat,.fa.fa-snapchat-ghost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-ghost:before{content:"\f2ab"}.fa.fa-snapchat-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-square:before{content:"\f2ad"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-themeisle,.fa.fa-yoast{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-meetup,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 6 Brands";font-weight:400} \ No newline at end of file diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/header-attrs/header-attrs.js b/Presentations-Brazil-SEFAZ/Feb 2025/libs/header-attrs/header-attrs.js new file mode 100644 index 0000000..dd57d92 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/header-attrs/header-attrs.js @@ -0,0 +1,12 @@ +// Pandoc 2.9 adds attributes on both header and div. We remove the former (to +// be compatible with the behavior of Pandoc < 2.8). +document.addEventListener('DOMContentLoaded', function(e) { + var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); + var i, h, a; + for (i = 0; i < hs.length; i++) { + h = hs[i]; + if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 + a = h.attributes; + while (a.length > 0) h.removeAttribute(a[0].name); + } +}); diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/panelset/panelset.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/panelset/panelset.css new file mode 100644 index 0000000..b1d3255 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/panelset/panelset.css @@ -0,0 +1,291 @@ +/* +* Prefixed by https://autoprefixer.github.io +* PostCSS: v8.4.14, +* Autoprefixer: v10.4.7 +* Browsers: >0.3%,last 2 versions,not dead +*/ + +.panelset { + width: 100%; + position: relative; + --_tabs-separator-color: var(--panel-tabs-separator-color, var(--panel-tabs-border-bottom, #ddd)); + --_tabs-separator-width: var(--panel-tabs-separator-width, 2px); + --_tabs-separator: var(--_tabs-separator-width) solid var(--_tabs-separator-color); + --_tabs-sideways-max-width: var(--panel-tabs-sideways-max-width, 25%); + --_tabs-spacing: var(--panel-tabs-spacing, 0); + + --_foreground: var(--panel-tab-foreground, currentColor); + --_background: var(--panel-tab-background, unset); + --_active-foreground: var(--panel-tab-active-foreground, currentColor); + --_active-background: var(--panel-tab-active-background, unset); + --_hover-foreground: var(--panel-tab-hover-foreground, currentColor); + --_hover-background: var(--panel-tab-hover-background, unset); + + --_border-color: var(--panel-tab-border-color, transparent); + --_border-top-color: var(--panel-tab-border-top-color, var(--_border-color)); + --_border-bottom-color: var(--panel-tab-border-bottom-color, var(--_border-color)); + --_border-width: var(--_tabs-separator-width) 0; + --_border-radius: var(--panel-tab-border-radius, 0); + + --_active-border-color: var(--panel-tab-active-border-color, currentColor); + --_active-border-top-color: var(--panel-tab-active-border-top-color, var(--_active-border-color)); + --_active-border-bottom-color: var(--panel-tab-active-border-bottom-color, var(--_active-border-color)); + + --_hover-border-top-color: var(--panel-tab-hover-border-top-color, transparent); + --_hover-border-bottom-color: var(--panel-tab-hover-border-bottom-color, currentColor); + + --_focus-ring: var( + --panel-tab-focus-ring, + solid var(--bs-focus-ring-color, var(--_active-border-color)) var(--bs-focus-ring-width, 2px) + ); + + --_inactive-opacity: var(--panel-tab-inactive-opacity, 0.5); + --_font-family: var(--panel-tab-font-family, inherit); + --_transition-duration: var(--panel-tab-transition-duration, 0.5s); +} + +.panelset * { + box-sizing: border-box; +} + +.panelset .panel-tabs { + display: flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: start; + align-items: center; + overflow: visible; + padding: 0; + gap: var(--_tabs-spacing); + border-bottom: var(--_tabs-separator); +} + +.panelset .panel-tabs * { + transition: opacity var(--_transition-duration) ease; +} + +.panelset .panel-tabs .panel-tab { + min-height: 50px; + display: flex; + justify-content: center; + align-items: center; + padding: 0.5em 1em; + font-family: var(--_font-family); + opacity: var(--_inactive-opacity); + border-width: var(--_border-width); + border-style: solid; + border-radius: var(--_border-radius); + border-top-color: var(--_border-top-color); + border-bottom-color: var(--_border-bottom-color); + margin-bottom: calc(-1 * var(--_tabs-separator-width)); + color: var(--_foreground); + background-color: var(--_background); + list-style: none; + z-index: 5; +} + +.panelset .panel-tabs .panel-tab > a { + color: currentColor; + text-decoration: none; + border: none; + width: 100%; + height: 100%; +} + +.panelset .panel-tabs .panel-tab > a:focus { + outline: none; + text-decoration: none; + border: none; +} + +.panelset .panel-tabs .panel-tab > a:hover { + text-decoration: none; + border: none; +} + +.panelset .panel-tabs .panel-tab:hover { + opacity: 1; + cursor: pointer; + z-index: 10; +} + +.panelset .panel-tabs .panel-tab:hover { + --_border-top-color: var(--_hover-border-top-color); + --_border-bottom-color: var(--_hover-border-bottom-color); + --_foreground: var(--_hover-foreground); + --_background: var(--_hover-background); +} + +.panelset .panel-tabs .panel-tab.panel-tab-active { + --_foreground: var(--_active-foreground); + --_background: var(--_active-background); + --_border-top-color: var(--_active-border-top-color); + --_border-bottom-color: var(--_active-border-bottom-color); + opacity: 1; +} + +.panelset .panel-tabs .panel-tab:focus { + outline: none; +} + +.panelset .panel-tabs .panel-tab:focus > a { + outline: var(--_focus-ring); + outline-offset: 2px; +} + +.panelset .panel-tabs .panel-tab:focus[tabindex="-1"] > a { + outline: none; +} + +.panelset .panel { + display: none; +} + +.panelset .panel-active { + display: block; +} + +.panelset .panel > :first-child, +.panelset .panel > section:first-child > :first-child { + margin-top: 0; +} + +/* ---- Sideways Panelset ---- */ + +@media (min-width: 480px) { + .panelset[aria-orientation="vertical"] { + display: flex; + flex-direction: row; + margin-bottom: 1rem; + } + + .panelset[aria-orientation="vertical"] .panel-tabs { + box-shadow: none; + flex-direction: column; + align-items: stretch; + margin: 0; + margin-right: 1em; + border-right: var(--_tabs-separator); + border-bottom: unset; + max-width: var(--_tabs-sideways-max-width); + } + + .panelset[aria-orientation="vertical"] .panel { + max-width: calc(100% - var(--_tabs-sideways-max-width) - 1em); + } + + .panelset[aria-orientation="vertical"] .panel-tabs .panel-tab { + border-top: unset; + border-bottom: unset; + padding-left: 0; + } + + .panelset[aria-orientation="vertical"]:not(.right) .panel-tabs .panel-tab { + text-align: left; + border-right: var(--_tabs-separator-width) solid var(--_border-bottom-color); + margin-right: calc(-1 * var(--_tabs-separator-width)); + } + + .panelset[aria-orientation="vertical"].right .panel-tabs .panel-tab { + text-align: right; + border-left: var(--_tabs-separator-width) solid var(--_border-bottom-color); + margin-left: calc(-1 * var(--_tabs-separator-width)); + } + + .panelset[aria-orientation="vertical"].right { + flex-direction: row-reverse; + justify-content: space-between; + } + + .panelset[aria-orientation="vertical"].right .panel-tabs { + margin-right: 0; + margin-left: 1em; + border-right: unset; + border-left: var(--_tabs-separator); + } + + .panelset[aria-orientation="vertical"].right .panel-tabs .panel-tab { + padding-left: 1em; + width: 100%; + } + + .panelset[aria-orientation="vertical"].right .panel-tabs .panel-tab a { + text-align: right; + } +} + +/* + This next part repeats the same CSS inside the @media query above but with + remarkjs-specific classes to ensure that sideways panelsets are always used. + In the future, we could use CSS nesting instead once it's availble. +*/ + +.remark-container .panelset[aria-orientation="vertical"] { + display: flex; + flex-direction: row; +} + +.remark-container .panelset[aria-orientation="vertical"] .panel-tabs { + box-shadow: none; + flex-direction: column; + align-items: stretch; + margin: 0; + margin-right: 1em; + border-right: var(--_tabs-separator); + border-bottom: unset; + max-width: var(--_tabs-sideways-max-width); +} + +.remark-container .panelset[aria-orientation="vertical"] .panel { + max-width: calc(100% - var(--_tabs-sideways-max-width) - 1em); +} + +.remark-container .panelset[aria-orientation="vertical"] .panel-tabs .panel-tab { + border-top: unset; + border-bottom: unset; + padding-left: 0; +} + +.remark-container .panelset[aria-orientation="vertical"]:not(.right) .panel-tabs .panel-tab { + text-align: left; + border-right: var(--_tabs-separator-width) solid var(--_border-bottom-color); + margin-right: calc(-1 * var(--_tabs-separator-width)); +} + +.remark-container .panelset[aria-orientation="vertical"].right .panel-tabs .panel-tab { + text-align: right; + border-left: var(--_tabs-separator-width) solid var(--_border-bottom-color); + margin-left: calc(-1 * var(--_tabs-separator-width)); +} + +.remark-container .panelset[aria-orientation="vertical"].right { + flex-direction: row-reverse; + justify-content: space-between; +} + +.remark-container .panelset[aria-orientation="vertical"].right .panel-tabs { + margin-right: 0; + margin-left: 1em; + border-right: unset; + border-left: var(--_tabs-separator); +} + +.remark-container .panelset[aria-orientation="vertical"].right .panel-tabs .panel-tab { + padding-left: 1em; + width: 100%; +} + +.remark-container .panelset[aria-orientation="vertical"].right .panel-tabs .panel-tab a { + text-align: right; +} + +/* Other remarkjs (xaringan) specific styles */ +.remark-container .panelset .panel-tabs .panel-tab:focus > a { + /* The outline isn't needed, since navigation is always <- or -> */ + outline: none; +} + +/* Reveal (Quarto) specific styles */ +.reveal .panelset .panel-tabs { + margin-left: 0; +} diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/panelset/panelset.js b/Presentations-Brazil-SEFAZ/Feb 2025/libs/panelset/panelset.js new file mode 100644 index 0000000..31b8c29 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/panelset/panelset.js @@ -0,0 +1,826 @@ +/* Panelset + * Tab panels for web projects created from markdown with Quarto and R Markdown. + * + * https://pkg.garrickadenbuie.com/xaringanExtra/#/panelset + * + * Copyright (c) 2019-2024 Garrick Aden-Buie + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + +/* VERSION: 0.3.0 */ + +/* global slideshow */ +;(function () { + const ready = function (fn) { + /* MIT License Copyright (c) 2016 Nuclei */ + /* https://github.com/nuclei/readyjs */ + const completed = () => { + document.removeEventListener('DOMContentLoaded', completed) + window.removeEventListener('load', completed) + fn() + } + if (document.readyState !== 'loading') { + setTimeout(fn) + } else { + document.addEventListener('DOMContentLoaded', completed) + window.addEventListener('load', completed) + } + } + + ready(function () { + ;[...document.querySelectorAll('.panel-name')].map(el => + el.textContent.trim() + ) + + function inRevealjs () { + return typeof window.Reveal !== 'undefined' + } + + function inRemarkjs () { + return typeof window.remark !== 'undefined' + } + + function inRemarkSlide (el) { + return inRemarkjs() && el.closest('.remark-slide') + } + + const panelIds = {} + let panelsetIdx = 0 + const panelsetIds = [] + + /** + * Generates a unique panelset ID. + * @param {string} id - The optional ID to be used as a base for the panelset ID. + * @returns {string} - The generated unique panelset ID. + */ + const uniquePanelsetId = id => { + const panelsetNumber = () => (++panelsetIdx).toString().padStart(3, '0') + + if (typeof id === 'undefined' || id === '') { + id = 'panelset_' + panelsetNumber() + } else if (panelsetIds.includes(id)) { + id = id + '_' + panelsetNumber() + } + + panelsetIds.push(id) + return id + } + + /** + * Generates a unique panel ID based on the provided name, by appending an + * increasing integer to the name to make it unique. + * + * @param {string} name - The name to generate the panel ID from. + * @returns {string} The unique panel ID. + */ + const uniquePanelId = name => { + name = encodeURIComponent(name.toLowerCase().replace(/[\s]/g, '-')) + if (Object.keys(panelIds).includes(name)) { + name += ++panelIds[name] + } else { + panelIds[name] = 1 + } + return name + } + + /** + * Identifies the panel name based on the given item, taking into account + * the various ways that panel names can be specified in R Markdown, Quarto, + * or revealjs. + * + * @param {HTMLElement} item - The item to identify the panel name from. + * @returns {string} The identified panel name or undefined if no name can + * be identified. + */ + const identifyPanelName = item => { + let name = 'Panel' + + // If the item doesn't have a parent element, then we've already processed + // it, probably because we're in an Rmd, and it's been removed from the DOM + if (!item.parentElement) { + return + } + + if (item.matches('.panel')) { + if (item.dataset.name) return item.dataset.name + if (item.getAttribute('name')) return item.getAttribute('name') + } + + // In R Markdown when header-attrs.js is present, we may have found a + // section header but the class attributes won't be duplicated on the tag + if ( + (item.tagName === 'SECTION' || item.classList.contains('section')) && + /^H[1-6]/.test(item.children[0].tagName) + ) { + name = item.children[0].textContent + item.classList.remove('panel-name') + item.removeChild(item.children[0]) + return name + } + + const nameDiv = item.querySelector('.panel-name') + if (!nameDiv) return name + + // In remarkjs the .panel-name span might be in a paragraph tag + // and if the

is empty, we'll remove it + if ( + nameDiv.tagName === 'SPAN' && + nameDiv.parentNode.tagName === 'P' && + nameDiv.textContent === nameDiv.parentNode.textContent + ) { + name = nameDiv.textContent + item.removeChild(nameDiv.parentNode) + return name + } + + // If none of the above, remove the nameDiv and return the name + name = nameDiv.textContent + nameDiv.parentNode.removeChild(nameDiv) + return name + } + + function getElementAttributes (el) { + return { + classes: Array.from(el.classList) + .filter(c => !/^level\d$/.test(c)) + .toString(), + style: el.style.cssText, + dataset: el.dataset + } + } + + /** + * Processes an original section of content and prepare data for the content + * panel the item will become. + * + * @param {HTMLElement} item - The panel item to process. + * @returns {Object|null} - An object containing the panel's name, content, + * id, active status, and other attributes. Returns null if the panel name + * cannot be identified. + */ + const processPanelItem = item => { + const name = identifyPanelName(item) + if (!name) { + return null + } + return { + name, + content: item.children, + id: uniquePanelId(name), + active: + item.dataset && + ['', 'true'].includes(item.dataset.active?.toLowerCase()), + ...getElementAttributes(item) + } + } + + /** + * Retrieves the current panel from the URL parameters. + * @param {string} panelsetId - The ID of the panelset. + * @returns {string|null} - The current panel ID or null if not in the URL. + */ + const getCurrentPanelFromUrl = panelsetId => { + const params = new URLSearchParams(window.location.search) + return params.get(panelsetId) + } + + /** + * Returns the initial selected panel ID based on the provided panels and + * the ID of the corresponding panelset. The active panel is chosen + * following: + * + * 1. If the panselset appears in the URL, use the panel ID from the URL. + * 2. If there is an active panel, use the ID of the first active panel. + * 3. Use the ID of the first panel in the array. + * + * Note that groups are not considered here. If the panelset is part of a + * group, the group state will be updated after the initial panelset is + * created. + * + * @param {Array} panels - The array of panel objects. + * @param {string} panelsetId - The ID of the panelset specified in the URL. + * @returns {string} - The ID of the initial selected panel. + */ + function getInitSelectedPanel (panels, panelsetId) { + const panelIds = panels.map(p => p.id) + + const panelSelectedUrl = getCurrentPanelFromUrl(panelsetId) + if (panelSelectedUrl && panelIds.includes(panelSelectedUrl)) { + return panelSelectedUrl + } + + const panelsActive = panels.filter(p => p.active) + if (panelsActive.length) { + return panelsActive[0].id + } + + return panels[0].id + } + + /** + * Creates a panel set element with header tabs and corresponding content + * sections. + * + * @param {Array} panels - An array of panel objects. + * @param {Object} options - An object containing optional parameters for + * the panel set. + * @param {string} options.id - The ID of the panel set element. + * @param {string} options.classes - Additional CSS classes to be applied to + * the panel set element. + * @param {string} options.style - Inline CSS styles to be applied to the + * panel set element. + * @param {Object} options.dataset - Custom data attributes to be added to + * the panel set element. + * @returns {HTMLElement} - The created panel set element. + */ + const reflowPanelSet = (panels, { id, classes, style, dataset }) => { + const res = document.createElement('div') + res.classList = 'panelset' + (classes ? ' ' + classes : '') + res.id = uniquePanelsetId(id) + res.style.cssText = style + if (dataset) { + Object.keys(dataset).forEach(key => { + res.dataset[key] = dataset[key] + }) + } + + const panelSelected = getInitSelectedPanel(panels, res.id) + + // create header row + const headerRow = document.createElement('ul') + headerRow.className = 'panel-tabs' + headerRow.setAttribute('role', 'tablist') + panels + .map((p, idx) => { + const thisPanelIsActive = panelSelected === p.id + + const panelHeaderItem = document.createElement('li') + panelHeaderItem.id = res.id + '_' + p.id // #panelsetid_panelid + panelHeaderItem.className = 'panel-tab' + panelHeaderItem.setAttribute('role', 'tab') + if (thisPanelIsActive) { + panelHeaderItem.tabIndex = 0 + } + panelHeaderItem.classList.toggle( + 'panel-tab-active', + thisPanelIsActive + ) + panelHeaderItem.setAttribute('aria-selected', thisPanelIsActive) + + if (p.dataset) { + Object.keys(p.dataset).forEach(key => { + panelHeaderItem.dataset[key] = p.dataset[key] + }) + } + + const panelHeaderLink = document.createElement('a') + panelHeaderLink.href = + '?' + res.id + '=' + p.id + '#' + panelHeaderItem.id + panelHeaderLink.setAttribute('onclick', 'return false;') + panelHeaderLink.tabIndex = -1 // list item is tabable, not link + panelHeaderLink.innerHTML = p.name + panelHeaderLink.setAttribute('aria-controls', p.id) + + panelHeaderItem.appendChild(panelHeaderLink) + return panelHeaderItem + }) + .forEach(el => headerRow.appendChild(el)) + + res.appendChild(headerRow) + + panels + .map((p, idx) => { + const thisPanelIsActive = panelSelected === p.id + const panelTag = inRevealjs() ? 'div' : 'section' + const panelContent = document.createElement(panelTag) + panelContent.classList = p.classes ? 'panel ' + p.classes : 'panel' + panelContent.style.cssText = p.style + panelContent.classList.toggle('panel-active', thisPanelIsActive) + panelContent.id = p.id + // https://www.w3.org/WAI/ARIA/apg/patterns/tabs/examples/tabs-automatic/ + panelContent.setAttribute('role', 'tabpanel') + panelContent.setAttribute('aria-labelledby', p.id) + panelContent.tabIndex = 0 + Array.from(p.content).forEach(el => panelContent.appendChild(el)) + return panelContent + }) + .forEach(el => res.appendChild(el)) + + return res + } + + /* + * Update selected panel for panelset or delete panelset from query string + * + * @param panelset Panelset ID to update in the search params @param panel + * Panel ID of selected panel in panelset, or null to delete from search + * params @param params Current params object, or params from + * window.location.search + */ + + /** + * Updates the search parameters with the specified panelset and panel + * values. If a panel is provided, it sets the panelset and panel in the + * search parameters. If no panel is provided, it removes the panelset from + * the search parameters. + * + * @param {string} panelsetId - The ID of the panelset. + * @param {string} [panelId] - The ID of the panel (optional). + * @param {URLSearchParams} [params=new + * URLSearchParams(window.location.search)] - The search parameters object + * (optional). + * @returns {URLSearchParams} - The updated search parameters object. + */ + function updateSearchParams ( + panelsetId, + panelId, + params = new URLSearchParams(window.location.search) + ) { + if (panelId) { + params.set(panelsetId, panelId) + } else { + params.delete(panelsetId) + } + return params + } + + /* + * Update the URL to match params + */ + const updateUrl = params => { + if (typeof params === 'undefined') return + params = params.toString() ? '?' + params.toString() : '' + const { pathname, hash } = window.location + const uri = pathname + params + hash + window.history.replaceState(uri, '', uri) + } + + /** + * Handles the click event on a panel tab within a panelset. + * @param {HTMLElement} clicked - The clicked element. + */ + function handleClickedPanel (clicked) { + const panelset = clicked.closest('.panelset') + if (!panelset) return + + clicked = clicked.closest('.panel-tab') + if (!clicked) return + + togglePanel(panelset, clicked) + } + + /** + * Handles keydown events for the `.panel-tabs` element within a panelset. + * This performs two actions: toggling the panel via space or enter and + * moving to the next or previous panel via arrow keys, depending on the + * panelset orientation. + * + * @see https://www.w3.org/WAI/ARIA/apg/patterns/tabs/examples/tabs-automatic/ + * + * @param {HTMLElement} panelset - The panelset element. + * @param {KeyboardEvent} ev - The keydown event. + */ + function handlePanelTabsKeydown (panelset, ev) { + const target = ev.currentTarget.querySelector('.panel-tab-active') + + function stopEvent () { + ev.preventDefault() + if (inRemarkjs() || inRevealjs()) { + ev.stopPropagation() + } + } + + if (ev.code === 'Space' || ev.code === 'Enter') { + togglePanel(panelset, ev.target) + stopEvent() + return + } + + let direction + + if (panelset.getAttribute('aria-orientation') === 'vertical') { + if (ev.code === 'ArrowUp') direction = 'prev' + if (ev.code === 'ArrowDown') direction = 'next' + } + + if ( + inRemarkSlide(panelset) || + inRevealjs() || + panelset.getAttribute('aria-orientation') === 'horizontal' + ) { + if (ev.code === 'ArrowLeft') direction = 'prev' + if (ev.code === 'ArrowRight') direction = 'next' + } + + if (!direction) return + + const newActive = toggleSibling(panelset, target, direction) + if (newActive) stopEvent() + return newActive + } + + /** + * Finds a panel by name within a panelset. `name` is compared with the + * panel tab text content, case-insensitive and trimmed. + * + * @param {HTMLElement} panelset - The panelset element. + * @param {string} name - The name of the panel tab to find. + * @returns {HTMLElement|undefined} - The matching panel element, or + * undefined if not found. + */ + function findPanelByName (panelset, name) { + const matches = Array.from( + panelset.querySelectorAll(':scope > .panel-tabs > .panel-tab') + ).filter(p => p.innerText.toLowerCase().trim() === name) + + if (!matches) { + console.error( + `No panel with name "${name}" found in panelset ${panelset.id}`, + { panelset, name } + ) + return + } + + if (matches > 1) { + console.warn( + `Multiple panels with name "${name}" found in panelset ${panelset.id}`, + { panelset, name } + ) + } + return matches[0] + } + + /** + * Toggles the visibility of a panel in a panelset. + * + * @param {HTMLElement} panelset - The panelset element containing the + * panels. + * @param {HTMLElement|string} target - The target panel or panel name to + * toggle. + * @param {'string'} [update='all'] - The update mode for the + * panelset. Possible values are 'all', 'group', or 'url'. + */ + function togglePanel (panelset, target, update = 'all', tabIndex = 0) { + // target is a .panel-tab element or a panel name + if (!(target instanceof window.HTMLElement)) { + target = findPanelByName(panelset, target) + if (!target) return + } + + const tabs = panelset.querySelectorAll( + ':scope > .panel-tabs > .panel-tab' + ) + const panels = panelset.querySelectorAll(':scope > .panel') + + const targetPanelId = target.children[0].getAttribute('aria-controls') + + // Set tab state + Array.from(tabs).forEach(t => { + t.classList.remove('panel-tab-active') + t.setAttribute('aria-selected', false) + t.removeAttribute('tabindex') + }) + + target.classList.add('panel-tab-active') + target.setAttribute('aria-selected', true) + target.tabIndex = tabIndex + + Array.from(panels).forEach(p => { + const isActive = p.id === targetPanelId + p.classList.toggle('panel-active', isActive) + p.hidden = !isActive + }) + + // emit window resize event to trick html widgets into fitting to the panel width + window.dispatchEvent(new window.Event('resize')) + + if (['all', 'group'].includes(update) && panelset.dataset.group) { + const group = panelset.dataset.group + const panel = target.innerText.toLowerCase().trim() + + setStoredPanelGroupState(group, panel) + + panelset.dispatchEvent( + new window.CustomEvent('panelset:group', { + bubbles: true, + detail: { group, panel } + }) + ) + } + + // update query string + if (['all', 'url'].includes(update)) { + const params = updateSearchParams(panelset.id, targetPanelId) + updateUrl(params) + } + } + + /** + * Toggles the sibling panel in the specified direction. + * + * @param {HTMLElement} panelset - The panelset element. + * @param {HTMLElement} target - The target panel element. + * @param {"next" | "prev"} [direction="next"] - The direction to toggle the + * sibling panel. Possible values are "next" and "prev". + */ + function toggleSibling (panelset, target, direction = 'next') { + let sibling + switch (direction) { + case 'next': + sibling = target.nextSibling + break + case 'prev': + sibling = target.previousSibling + break + } + + if (!sibling) return + const update = parseInt(target.tabIndex) < 0 ? 'url' : 'all' + togglePanel(panelset, sibling, update, target.tabIndex) + sibling.focus() + return sibling + } + + /** + * Initializes a panel set from the original markup into a full panelset. + * This includes creating the panel tabs, rearranging content, adding event + * listeners, and synchronizing with a panel set group. + * + * @param {HTMLElement} panelset - The `.panelset` element to initialize. + * @returns {HTMLElement} - The new panelset element. + */ + const initPanelSet = panelset => { + let panels = Array.from(panelset.querySelectorAll(':scope > .panel, :scope > .cell > .panel')) + + const pandocSectionSelector = ':is(section, .section)[class*="level"]' + if (!panels.length) { + // we're in tabset-alike R Markdown or Quarto + const getSectionLevel = el => { + const levels = [...el.classList].filter(s => s.match(/^level/)) + return levels.length ? levels[0].replace('level', '') : levels + } + + // {.panelset} applied to a section heading + let panelsetLevel = getSectionLevel(panelset) + + if (!panelsetLevel.length) { + // {.panelset} applied as a fenced div around subsections + const subSections = panelset.querySelectorAll(pandocSectionSelector) + if (!subSections.length) return + + panelsetLevel = Array.from(subSections) + .map(getSectionLevel) + .map(x => parseInt(x)) + .reduce((acc, x) => Math.min(acc, x), Infinity) + + panelsetLevel = +panelsetLevel - 1 + } + + // move children that aren't inside a section up above the panelset + Array.from(panelset.children).forEach(function (el) { + if (el.matches(pandocSectionSelector)) return + panelset.parentElement.insertBefore(el, panelset) + }) + + // panels are all .sections with .level + const panelLevel = +panelsetLevel + 1 + panels = Array.from( + panelset.querySelectorAll(`:is(section, .section).level${panelLevel}`) + ) + } + + if (!panels.length) return + + // create content panels + const contents = panels.map(processPanelItem).filter(o => o !== null) + + // create panelset + const panelsetAttrs = getElementAttributes(panelset) + const newPanelSet = reflowPanelSet(contents, { + id: panelset.id, + ...panelsetAttrs + }) + newPanelSet.classList = panelset.classList + + // set orientation + const isVertical = panelset.matches( + '.sideways, .vertical, [aria-orientation="vertical"]' + ) + newPanelSet.setAttribute( + 'aria-orientation', + isVertical ? 'vertical' : 'horizontal' + ) + + panelset.parentNode.insertBefore(newPanelSet, panelset) + panelset.parentNode.removeChild(panelset) + + // click and touch events + const panelTabs = newPanelSet.querySelector('.panel-tabs') + ;['click', 'touchend'].forEach(eventType => { + panelTabs.addEventListener(eventType, function (ev) { + handleClickedPanel(ev.target) + ev.stopPropagation() + }) + }) + panelTabs.addEventListener('touchmove', function (ev) { + ev.preventDefault() + }) + + // key events + newPanelSet + .querySelector('.panel-tabs') + .addEventListener('keydown', ev => { + handlePanelTabsKeydown(newPanelSet, ev) + }) + + // synchronize with the panelset group + if (newPanelSet.dataset.group) { + window.addEventListener('panelset:group', ev => { + if (ev.target === newPanelSet) return + if (ev.detail.group !== newPanelSet.dataset.group) return + togglePanel(newPanelSet, ev.detail.panel, 'url') + }) + + const groupData = getStoredPanelSettings() + const currentPanelFromUrl = getCurrentPanelFromUrl(newPanelSet.id) + + if (!currentPanelFromUrl && groupData[newPanelSet.dataset.group]) { + togglePanel(newPanelSet, groupData[newPanelSet.dataset.group], null) + } + } + + return newPanelSet + } + + const localStorageKey = 'panelset-data' + + /** + * Retrieves or creates the stored panel settings from local storage. + * @returns {{['string']: 'string'} | {}} The stored panel settings, as an + * empty object or an object with group names as keys and the currently + * activated panel names as values. + */ + function getStoredPanelSettings () { + const data = window.localStorage.getItem(localStorageKey) + if (!data) { + window.localStorage.setItem(localStorageKey, '{}') + return {} + } + if (data) { + return JSON.parse(data) + } + } + + function setStoredPanelSettings (data) { + window.localStorage.setItem(localStorageKey, JSON.stringify(data)) + } + + /** + * Sets the stored panel group state in local storage. The group `name` is + * used as a key and is globally checked across pages in the same domain. + * + * @param {string} name - The name of the panel group. + * @param {any} value - The value to set for the panel group. + */ + function setStoredPanelGroupState (name, value) { + const data = getStoredPanelSettings() + data[name] = value + setStoredPanelSettings(data) + } + + // initialize panels + document + .querySelectorAll('[data-panelset="true"]') + .forEach(el => { + const isCell = el.classList.contains('cell') + const hasParentPanelset = el.parentElement.classList.contains('panelset') + if (!isCell || !hasParentPanelset) { + // We let `data-panelset="true"` create a new panelset, unless it's on + // a code cell that's already inside a panelset, in which case the + // panels will be folded into the parent panelset. + el.classList.add('panelset') + } + }) + + const panelsets = { atomic: [], nested: [] } + Array.from(document.querySelectorAll('.panelset')).forEach(el => { + if (el.querySelector('.panelset')) { + // push nested panelsets to the start of the list (inner -> outer) + panelsets.nested.unshift(el) + } else { + // put panelsets without nested panelsets at the beginning + panelsets.atomic.push(el) + } + }) + + // initialize atomic panelsets first, then nested panelsets + panelsets.atomic.forEach(initPanelSet) + panelsets.nested.forEach(initPanelSet) + + if (inRemarkjs()) { + const getVisibleActivePanelInfo = () => { + const slidePanels = document.querySelectorAll( + '.remark-visible .panel-tab-active' + ) + + if (!slidePanels.length) return null + + return slidePanels.map(panel => { + return { + panel, + panelId: panel.children[0].getAttribute('aria-controls'), + panelSetId: panel.parentNode.parentNode.id + } + }) + } + + slideshow.on('hideSlide', slide => { + // clear focus if we had a panel-tab selected + document.activeElement.blur() + + // clear search query for panelsets in current slide + const params = [ + ...document.querySelectorAll('.remark-visible .panelset') + ].reduce(function (params, panelset) { + return updateSearchParams(panelset.id, null, params) + }, new URLSearchParams(window.location.search)) + + updateUrl(params) + }) + + slideshow.on('afterShowSlide', slide => { + const slidePanels = getVisibleActivePanelInfo() + + if (slidePanels) { + // only first panel gets focus + slidePanels[0].panel.focus() + // but still update the url to reflect all active panels + const params = slidePanels.reduce(function ( + params, + { panelId, panelSetId } + ) { + return updateSearchParams(panelSetId, panelId, params) + }, + new URLSearchParams(window.location.search)) + updateUrl(params) + } + }) + } + + if (inRevealjs()) { + window.Reveal.on('slidechanged', function ({ currentSlide, previousSlide, ...data }) { + // clear focus from any active panel-tab in the previous slide + const previousActive = previousSlide.querySelector('.panelset .panel-tab:focus') + if (previousActive) { + previousActive.blur() + previousActive.removeAttribute('tabindex') + } + + const previousPanelsets = previousSlide.querySelectorAll('.panelset') + if (previousPanelsets.length) { + // clear search query for panelsets in previous slide + const params = [ + ...previousSlide.querySelectorAll('.panelset') + ].reduce(function (params, panelset) { + return updateSearchParams(panelset.id, null, params) + }, new URLSearchParams(window.location.search)) + + updateUrl(params) + } + + const firstPanelset = currentSlide.querySelector('.panelset') + if (!firstPanelset) return + + const panelIdFromUrl = getCurrentPanelFromUrl(firstPanelset.id) + const panelFromUrl = !panelIdFromUrl + ? null + : firstPanelset + .querySelector(`[aria-controls="${panelIdFromUrl}"]`) + ?.parentElement + + const firstPanel = panelIdFromUrl + ? panelFromUrl + : firstPanelset.querySelector('.panel-tab-active') + + if (!firstPanel) return + firstPanel.setAttribute('tabindex', '-1') + firstPanel.focus() + + // update url for all panels on this slide + const params = [ + ...currentSlide.querySelectorAll('.panelset') + ].reduce(function (params, panelset) { + return updateSearchParams( + panelset.id, + panelset.querySelector('.panel-active').id, + params + ) + }, new URLSearchParams(window.location.search)) + + updateUrl(params) + }) + } + }) +})() diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/custom.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/custom.css new file mode 100644 index 0000000..00aa63e --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/custom.css @@ -0,0 +1,251 @@ +.vlarge { + font-size: 200% +} + +.large { + font-size: 150% +} + +.medium { + font-size: 120% +} + +.small { + font-size: 70% +} + +.red { + color: #ac142a +} + +.green{ + color: #046307 +} + +.cell-center { + text-align: center; +} + +div.command { + padding: 5px 20px; + margin: 20px; + background-position: 15px center; + color: #58595B; + background-color: #fdeccf; + border-radius: 10px; + } + +div.exercise { + padding: 2px 20px; + margin: 20px; + background-position: 15px center; + color: #58595B; + background-color: #e3f5fb; + border-radius: 20px; + } + +div.solution { + padding: 2px 20px; + margin: 20px; + background-position: 15px center; + color: #58595B; + background-color: #f7fbe3; + border-radius: 20px; + } + +div.notes { + padding: 2px 20px; + margin: 20px; + background-position: 15px center; + color: #58595B; + background-color: #e8e8e8; + border-radius: 20px; + } + +div.extra_container { + padding: 2px 20px; + margin: 20px; + background-position: 15px center; + color: #58595B; + background-color: #e8fbe8; + border-radius: 20px; + } + +.sp-after { + margin-bottom: 1em !important; +} + +.sp-after-half { + margin-bottom: 0.7em !important; +} + +/* +Coloring and inverse coloring in title bars and content boxes +*/ +.box-1, +.section-title-1 { + background-color: #0D0887; +} + +.box-2, +.section-title-2 { + background-color: #5601A4; +} + +.box-3, +.section-title-3 { + background-color: #900DA4; +} + +.box-4, +.section-title-4 { + background-color: #BF3984; +} + +.box-5, +.section-title-5 { + background-color: #E16462; +} + +.box-6, +.section-title-6 { + background-color: #F89441; +} + +.box-7, +.section-title-7 { + background-color: #FCCE25; +} + +.box-inv-1, +.section-title-inv-1 { + background-color: #B2B1F9; +} + +.box-inv-2, +.section-title-inv-2 { + background-color: #CBB5FF; +} + +.box-inv-3, +.section-title-inv-3 { + background-color: #EFB3FF; +} + +.box-inv-4, +.section-title-inv-4 { + background-color: #FFC0DC; +} + +.box-inv-5, +.section-title-inv-5 { + background-color: #FFD0CF; +} + +.box-inv-6, +.section-title-inv-6 { + background-color: #FFDFD1; +} + +.box-inv-7, +.section-title-inv-7 { + background-color: #FFF0D4; +} + +.box-inv-1, +.title-inv-1 h1, +.section-title-inv-1 h1 { + color: #0D0887; +} + +.box-inv-2, +.title-inv-2 h1, +.section-title-inv-2 h1 { + color: #5601A4; +} + +.box-inv-3, +.title-inv-3 h1, +.section-title-inv-3 h1 { + color: #900DA4; +} + +.box-inv-4, +.title-inv-4 h1, +.section-title-inv-4 h1 { + color: #BF3984; +} + +.box-inv-5, +.title-inv-5 h1, +.section-title-inv-5 h1 { + color: #E16462; +} + +.box-inv-6, +.title-inv-6 h1, +.section-title-inv-6 h1 { + color: #F89441; +} + +.box-inv-7, +.title-inv-7 h1, +.section-title-inv-7 h1 { + color: #FCCE25; +} + +.box-7, .box-6, .box-5, .box-4, .box-3, .box-2, .box-1, .title-7 h1, .title-6 h1, .title-5 h1, .title-4 h1, .title-3 h1, .title-2 h1, .title-1 h1, .section-title h1 { + color: #FFFFFF; +} + +.box-7, .box-inv-7, .box-6, .box-inv-6, .box-5, .box-inv-5, .box-4, .box-inv-4, .box-3, .box-inv-3, .box-2, .box-inv-2, .box-1, .box-inv-1 { + margin: 0em auto; + overflow: hidden; + padding: 0.1em 0.4em; + font-weight: 600; + display: table; + text-align: center; +} + +.float-left { + text-align: left; +} + +.float-right { + text-align: right; +} + +.float-left .box-1, .float-left .box-inv-1, +.float-right .box-1, .float-right .box-inv-1 { + display: inline; +} + +.float-left .box-2, .float-left .box-inv-2, +.float-right .box-2, .float-right .box-inv-2 { + display: inline; +} + +.float-left .box-3, .float-left .box-inv-3, +.float-right .box-3, .float-right .box-inv-3 { + display: inline; +} + +.float-left .box-4, .float-left .box-inv-4, +.float-right .box-4, .float-right .box-inv-4 { + display: inline; +} + +.float-left .box-5, .float-left .box-inv-5, +.float-right .box-5, .float-right .box-inv-5 { + display: inline; +} + +.float-left .box-6, .float-left .box-inv-6, +.float-right .box-6, .float-right .box-inv-6 { + display: inline; +} + +.float-left .box-7, .float-left .box-inv-7, +.float-right .box-7, .float-right .box-inv-7 { + display: inline; +} diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/default.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/default.css new file mode 100644 index 0000000..93bd1ff --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/default.css @@ -0,0 +1,72 @@ +a, a > code { + color: #D38C28; + text-decoration: none; +} +.footnote { + position: absolute; + bottom: 3em; + padding-right: 4em; + font-size: 90%; +} +.remark-code-line-highlighted { background-color: #ffff88; } + +.inverse { + background-color: #272822; + color: #d6d6d6; + text-shadow: 0 0 20px #333; +} +.inverse h1, .inverse h2, .inverse h3 { + color: #f3f3f3; +} +/* Two-column layout */ +.left-column { + color: #777; + width: 20%; + height: 92%; + float: left; +} +.left-column h2:last-of-type, .left-column h3:last-child { + color: #000; +} +.right-column { + width: 75%; + float: right; + padding-top: 1em; +} +.pull-left { + float: left; + width: 47%; +} +.pull-right { + float: right; + width: 47%; +} +.pull-right + * { + clear: both; +} +img, video, iframe { + max-width: 100%; +} +blockquote { + border-left: solid 5px lightgray; + padding-left: 1em; +} +.remark-slide table { + margin: auto; + border-top: 1px solid #666; + border-bottom: 1px solid #666; +} +.remark-slide table thead th { border-bottom: 1px solid #ddd; } +th, td { padding: 5px; } +.remark-slide thead, .remark-slide tfoot, .remark-slide tr:nth-child(even) { background: #eee } + +@page { margin: 0; } +@media print { + .remark-slide-scaler { + width: 100% !important; + height: 100% !important; + transform: scale(1) !important; + top: 0 !important; + left: 0 !important; + } +} diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/metropolis-fonts.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/metropolis-fonts.css new file mode 100644 index 0000000..70312d9 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/metropolis-fonts.css @@ -0,0 +1,12 @@ +@import url(https://fonts.googleapis.com/css?family=Fira+Sans:300,300i,400,400i,500,500i,700,700i); +@import url(https://cdn.rawgit.com/tonsky/FiraCode/1.204/distr/fira_code.css); +@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap'); + +body { + font-family: 'Fira Sans','Droid Serif', 'Palatino Linotype', 'Book Antiqua', Palatino, 'Microsoft YaHei', 'Songti SC', serif; +} + +.remark-code, .remark-inline-code { + font-family: 'Share Tech Mono', monospace; + font-size: 90%; +} diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/metropolis.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/metropolis.css new file mode 100644 index 0000000..2773be2 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/remark-css/metropolis.css @@ -0,0 +1,257 @@ +.remark-slide-content { + background-color: #FFFFFF; + border-top: 80px solid #1f7ba6; + font-size: 20px; + font-weight: 300; + line-height: 1.5; + padding: 1em 2em 1em 2em +} + +.title-slide { + background-color: #FFFFFF; + background-image: url(https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQm-BqPfNF1xgT-HzzKkeetCZP72hbFBiz4BQ&usqp=CAU); + background-position:4.5% 90%; + background-size: 100px; +} + +.inverse { + background-color: #1f7ba6; + text-shadow: none; +} + +/* Removes colored bar from top of the slide resulting in a clear slide */ +.clear{ + border-top: 0px solid #FFFFFF; +} + +h1 { + font-weight: normal; + margin-top: -95px; + margin-left: -00px; + color: #FFFFFF; +} + +h2, h3, h4 { + padding-top: -15px; + padding-bottom: 00px; + color: #1A292C; + text-shadow: none; + font-weight: 400; + text-align: left; + margin-left: 00px; + margin-bottom: -10px; +} + +.remark-slide-content h1 { + font-size: 45px; +} + +.remark-slide-content h2 { + font-size: 35px; +} + +.remark-slide-content h3 { + font-size: 30px; +} + +.left-column h2, .left-column h3, .left-column h4 { + color: #777; +} + +.left-column h2:last-of-type, .left-column h3:last-child { + color: #1A292C; +} + +.title-slide { + background-color: #FFFFFF; + border-top: 80px solid #FFFFFF; +} + +.title-slide h1 { + color: #1A292C; + font-size: 40px; + text-shadow: none; + font-weight: 400; + text-align: left; + margin-left: 15px; + padding-top: 80px; +} +.title-slide h2 { + margin-top: -25px; + padding-bottom: -20px; + color: #1A292C; + text-shadow: none; + font-weight: 300; + font-size: 35px; + text-align: left; + margin-left: 15px; +} +.title-slide h3 { + color: #1A292C; + text-shadow: none; + font-weight: 300; + font-size: 25px; + text-align: left; + margin-left: 15px; + margin-bottom: -30px; +} + +hr, .title-slide h2::after, .mline h1::after { + content: ''; + display: block; + border: none; + background-color: #D38C28; + color: #D38C28; + height: 1px; +} + +hr, .mline h1::after { + margin: 1em 15px 0 15px; +} + +.title-slide h2::after { + margin: 10px 15px 35px 0; +} + +.mline h1::after { + margin: 10px 15px 0 15px; +} + +.remark-slide-number { + font-size: 13pt; + color: #272822; + opacity: 1; +} +.inverse .remark-slide-number { + font-size: 13pt; + color: #FFFFFF; + opacity: 1; +} + +/* turns off slide numbers for title page: https://github.com/gnab/remark/issues/298 */ +.title-slide .remark-slide-number { + display: none; +} + +.remark-inline-code { + /* background: #F5F5F5; /* lighter */ + background: #e7e8e2; /* darker */ + border-radius: 3px; + padding: 4px; +} + +.code10 .remark-code { + font-size: 10%; +} + +.code20 .remark-code { + font-size: 20%; +} + +.code30 .remark-code { + font-size: 30%; +} + +.code40 .remark-code { + font-size: 40%; +} + +.code50 .remark-code { + font-size: 50%; +} + +.code60 .remark-code { + font-size: 60%; +} + +.code70 .remark-code { + font-size: 70%; +} + +.code80 .remark-code { + font-size: 80%; +} + +.code90 .remark-code { + font-size: 90%; +} + +.code100 .remark-code { + font-size: 100%; +} + +.font10 { + font-size: 10%; +} + +.font20 { + font-size: 20%; +} + +.font30 { + font-size: 30%; +} + +.font40 { + font-size: 40%; +} + +.font50 { + font-size: 50%; +} + +.font60 { + font-size: 60%; +} + +.font70 { + font-size: 70%; +} + +.font80 { + font-size: 80%; +} + +.font90 { + font-size: 90%; +} + +.font100 { + font-size: 100%; +} + +.font110 { + font-size: 110%; +} + +.font120 { + font-size: 120%; +} + +.font130 { + font-size: 130%; +} + +.font140 { + font-size: 140%; +} + +.font150 { + font-size: 150%; +} + +.font160 { + font-size: 160%; +} +.font170 { + font-size: 170%; +} +.font180 { + font-size: 180%; +} +.font190 { + font-size: 190%; +} +.font200 { + font-size: 200%; +} diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/xaringanExtra-clipboard/xaringanExtra-clipboard.css b/Presentations-Brazil-SEFAZ/Feb 2025/libs/xaringanExtra-clipboard/xaringanExtra-clipboard.css new file mode 100644 index 0000000..2a38a37 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/xaringanExtra-clipboard/xaringanExtra-clipboard.css @@ -0,0 +1,23 @@ +.xaringanextra-clipboard-button { + position: absolute; + top: 0; + right: 0; + font-size: 0.8em; + padding: 0.5em; + display: none; + background-color: transparent; + border: none; + opacity: 0.5; + border-radius: 0; +} + +.xaringanextra-clipboard-button:hover { + background-color: rgba(0, 0, 0, 0.1); + border: none; + opacity: 1; +} + +:hover > .xaringanextra-clipboard-button { + display: block; + transform: translateY(0); +} diff --git a/Presentations-Brazil-SEFAZ/Feb 2025/libs/xaringanExtra-clipboard/xaringanExtra-clipboard.js b/Presentations-Brazil-SEFAZ/Feb 2025/libs/xaringanExtra-clipboard/xaringanExtra-clipboard.js new file mode 100644 index 0000000..0532818 --- /dev/null +++ b/Presentations-Brazil-SEFAZ/Feb 2025/libs/xaringanExtra-clipboard/xaringanExtra-clipboard.js @@ -0,0 +1,98 @@ +/* global slideshow,window,document */ +window.xaringanExtraClipboard = function (selector, text) { + if (!window.ClipboardJS.isSupported()) return + if (!window.xaringanExtraClipboards) window.xaringanExtraClipboards = {} + + const ready = function (fn) { + /* MIT License Copyright (c) 2016 Nuclei */ + /* https://github.com/nuclei/readyjs */ + const completed = () => { + document.removeEventListener('DOMContentLoaded', completed) + window.removeEventListener('load', completed) + fn() + } + if (document.readyState !== 'loading') { + setTimeout(fn) + } else { + document.addEventListener('DOMContentLoaded', completed) + window.addEventListener('load', completed) + } + } + + ready(function () { + const { + button: buttonText = 'Copy Code', + success: successText = 'Copied!', + error: errorText = 'Press Ctrl+C to Copy' + } = text + + const template = '` + + const isRemarkSlideshow = typeof slideshow !== 'undefined' && + Object.prototype.hasOwnProperty.call(slideshow, 'getSlides') + + let siblingSelector = selector || 'pre' + if (!selector && isRemarkSlideshow) { + siblingSelector = '.remark-slides-area ' + siblingSelector + } + + // insert