diff --git a/404.html b/404.html
index c7b51f0..dd16cbb 100644
--- a/404.html
+++ b/404.html
@@ -1,7 +1,7 @@
-
Eric X. Liu's Personal Page
\ No newline at end of file
diff --git a/about/index.html b/about/index.html
index 276d199..1916c99 100644
--- a/about/index.html
+++ b/about/index.html
@@ -1,7 +1,7 @@
-About · Eric X. Liu's Personal Page
\ No newline at end of file
diff --git a/categories/index.html b/categories/index.html
index eac792e..f66b34c 100644
--- a/categories/index.html
+++ b/categories/index.html
@@ -1,7 +1,7 @@
-Categories · Eric X. Liu's Personal Page
\ No newline at end of file
diff --git a/css/coder.min.6445a802b9389c9660e1b07b724dcf5718b1065ed2d71b4eeaf981cc7cc5fc46.css b/css/coder.min.c8e4eea149ae1dc7c61ba9b0781793711a4e657f7e07a4413f9abc46d52dffc4.css
similarity index 89%
rename from css/coder.min.6445a802b9389c9660e1b07b724dcf5718b1065ed2d71b4eeaf981cc7cc5fc46.css
rename to css/coder.min.c8e4eea149ae1dc7c61ba9b0781793711a4e657f7e07a4413f9abc46d52dffc4.css
index 962bc6b..bc5d081 100644
--- a/css/coder.min.6445a802b9389c9660e1b07b724dcf5718b1065ed2d71b4eeaf981cc7cc5fc46.css
+++ b/css/coder.min.c8e4eea149ae1dc7c61ba9b0781793711a4e657f7e07a4413f9abc46d52dffc4.css
@@ -8,4 +8,4 @@
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2024 Fonticons, Inc.*/: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(../fonts/fa-brands-400.woff2)format("woff2"),url(../fonts/fa-brands-400.ttf)format("truetype")}.fab,.fa-brands{font-weight:400}.fa-monero{--fa:"\f3d0"}.fa-hooli{--fa:"\f427"}.fa-yelp{--fa:"\f1e9"}.fa-cc-visa{--fa:"\f1f0"}.fa-lastfm{--fa:"\f202"}.fa-shopware{--fa:"\f5b5"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-aws{--fa:"\f375"}.fa-redhat{--fa:"\f7bc"}.fa-yoast{--fa:"\f2b1"}.fa-cloudflare{--fa:"\e07d"}.fa-ups{--fa:"\f7e0"}.fa-pixiv{--fa:"\e640"}.fa-wpexplorer{--fa:"\f2de"}.fa-dyalog{--fa:"\f399"}.fa-bity{--fa:"\f37a"}.fa-stackpath{--fa:"\f842"}.fa-buysellads{--fa:"\f20d"}.fa-first-order{--fa:"\f2b0"}.fa-modx{--fa:"\f285"}.fa-guilded{--fa:"\e07e"}.fa-vnv{--fa:"\f40b"}.fa-square-js{--fa:"\f3b9"}.fa-js-square{--fa:"\f3b9"}.fa-microsoft{--fa:"\f3ca"}.fa-qq{--fa:"\f1d6"}.fa-orcid{--fa:"\f8d2"}.fa-java{--fa:"\f4e4"}.fa-invision{--fa:"\f7b0"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-centercode{--fa:"\f380"}.fa-glide-g{--fa:"\f2a6"}.fa-drupal{--fa:"\f1a9"}.fa-jxl{--fa:"\e67b"}.fa-dart-lang{--fa:"\e693"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-unity{--fa:"\e049"}.fa-whmcs{--fa:"\f40d"}.fa-rocketchat{--fa:"\f3e8"}.fa-vk{--fa:"\f189"}.fa-untappd{--fa:"\f405"}.fa-mailchimp{--fa:"\f59e"}.fa-css3-alt{--fa:"\f38b"}.fa-square-reddit{--fa:"\f1a2"}.fa-reddit-square{--fa:"\f1a2"}.fa-vimeo-v{--fa:"\f27d"}.fa-contao{--fa:"\f26d"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-deskpro{--fa:"\f38f"}.fa-brave{--fa:"\e63c"}.fa-sistrix{--fa:"\f3ee"}.fa-square-instagram{--fa:"\e055"}.fa-instagram-square{--fa:"\e055"}.fa-battle-net{--fa:"\f835"}.fa-the-red-yeti{--fa:"\f69d"}.fa-square-hacker-news{--fa:"\f3af"}.fa-hacker-news-square{--fa:"\f3af"}.fa-edge{--fa:"\f282"}.fa-threads{--fa:"\e618"}.fa-napster{--fa:"\f3d2"}.fa-square-snapchat{--fa:"\f2ad"}.fa-snapchat-square{--fa:"\f2ad"}.fa-google-plus-g{--fa:"\f0d5"}.fa-artstation{--fa:"\f77a"}.fa-markdown{--fa:"\f60f"}.fa-sourcetree{--fa:"\f7d3"}.fa-google-plus{--fa:"\f2b3"}.fa-diaspora{--fa:"\f791"}.fa-foursquare{--fa:"\f180"}.fa-stack-overflow{--fa:"\f16c"}.fa-github-alt{--fa:"\f113"}.fa-phoenix-squadron{--fa:"\f511"}.fa-pagelines{--fa:"\f18c"}.fa-algolia{--fa:"\f36c"}.fa-red-river{--fa:"\f3e3"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-safari{--fa:"\f267"}.fa-google{--fa:"\f1a0"}.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-font-awesome-alt{--fa:"\f35c"}.fa-atlassian{--fa:"\f77b"}.fa-linkedin-in{--fa:"\f0e1"}.fa-digital-ocean{--fa:"\f391"}.fa-nimblr{--fa:"\f5a8"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-hacker-news{--fa:"\f1d4"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-adversal{--fa:"\f36a"}.fa-creative-commons{--fa:"\f25e"}.fa-watchman-monitoring{--fa:"\e087"}.fa-fonticons{--fa:"\f280"}.fa-weixin{--fa:"\f1d7"}.fa-shirtsinbulk{--fa:"\f214"}.fa-codepen{--fa:"\f1cb"}.fa-git-alt{--fa:"\f841"}.fa-lyft{--fa:"\f3c3"}.fa-rev{--fa:"\f5b2"}.fa-windows{--fa:"\f17a"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-square-viadeo{--fa:"\f2aa"}.fa-viadeo-square{--fa:"\f2aa"}.fa-meetup{--fa:"\f2e0"}.fa-centos{--fa:"\f789"}.fa-adn{--fa:"\f170"}.fa-cloudsmith{--fa:"\f384"}.fa-opensuse{--fa:"\e62b"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-square-dribbble{--fa:"\f397"}.fa-dribbble-square{--fa:"\f397"}.fa-codiepie{--fa:"\f284"}.fa-node{--fa:"\f419"}.fa-mix{--fa:"\f3cb"}.fa-steam{--fa:"\f1b6"}.fa-cc-apple-pay{--fa:"\f416"}.fa-scribd{--fa:"\f28a"}.fa-debian{--fa:"\e60b"}.fa-openid{--fa:"\f19b"}.fa-instalod{--fa:"\e081"}.fa-files-pinwheel{--fa:"\e69f"}.fa-expeditedssl{--fa:"\f23e"}.fa-sellcast{--fa:"\f2da"}.fa-square-twitter{--fa:"\f081"}.fa-twitter-square{--fa:"\f081"}.fa-r-project{--fa:"\f4f7"}.fa-delicious{--fa:"\f1a5"}.fa-freebsd{--fa:"\f3a4"}.fa-vuejs{--fa:"\f41f"}.fa-accusoft{--fa:"\f369"}.fa-ioxhost{--fa:"\f208"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-app-store{--fa:"\f36f"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-itunes-note{--fa:"\f3b5"}.fa-golang{--fa:"\e40f"}.fa-kickstarter{--fa:"\f3bb"}.fa-square-kickstarter{--fa:"\f3bb"}.fa-grav{--fa:"\f2d6"}.fa-weibo{--fa:"\f18a"}.fa-uncharted{--fa:"\e084"}.fa-firstdraft{--fa:"\f3a1"}.fa-square-youtube{--fa:"\f431"}.fa-youtube-square{--fa:"\f431"}.fa-wikipedia-w{--fa:"\f266"}.fa-wpressr{--fa:"\f3e4"}.fa-rendact{--fa:"\f3e4"}.fa-angellist{--fa:"\f209"}.fa-galactic-republic{--fa:"\f50c"}.fa-nfc-directional{--fa:"\e530"}.fa-skype{--fa:"\f17e"}.fa-joget{--fa:"\f3b7"}.fa-fedora{--fa:"\f798"}.fa-stripe-s{--fa:"\f42a"}.fa-meta{--fa:"\e49b"}.fa-laravel{--fa:"\f3bd"}.fa-hotjar{--fa:"\f3b1"}.fa-bluetooth-b{--fa:"\f294"}.fa-square-letterboxd{--fa:"\e62e"}.fa-sticker-mule{--fa:"\f3f7"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-hips{--fa:"\f452"}.fa-css{--fa:"\e6a2"}.fa-behance{--fa:"\f1b4"}.fa-reddit{--fa:"\f1a1"}.fa-discord{--fa:"\f392"}.fa-chrome{--fa:"\f268"}.fa-app-store-ios{--fa:"\f370"}.fa-cc-discover{--fa:"\f1f2"}.fa-wpbeginner{--fa:"\f297"}.fa-confluence{--fa:"\f78d"}.fa-shoelace{--fa:"\e60c"}.fa-mdb{--fa:"\f8ca"}.fa-dochub{--fa:"\f394"}.fa-accessible-icon{--fa:"\f368"}.fa-ebay{--fa:"\f4f4"}.fa-amazon{--fa:"\f270"}.fa-unsplash{--fa:"\e07c"}.fa-yarn{--fa:"\f7e3"}.fa-square-steam{--fa:"\f1b7"}.fa-steam-square{--fa:"\f1b7"}.fa-500px{--fa:"\f26e"}.fa-square-vimeo{--fa:"\f194"}.fa-vimeo-square{--fa:"\f194"}.fa-asymmetrik{--fa:"\f372"}.fa-font-awesome{--fa:"\f2b4"}.fa-font-awesome-flag{--fa:"\f2b4"}.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-gratipay{--fa:"\f184"}.fa-apple{--fa:"\f179"}.fa-hive{--fa:"\e07f"}.fa-gitkraken{--fa:"\f3a6"}.fa-keybase{--fa:"\f4f5"}.fa-apple-pay{--fa:"\f415"}.fa-padlet{--fa:"\e4a0"}.fa-amazon-pay{--fa:"\f42c"}.fa-square-github{--fa:"\f092"}.fa-github-square{--fa:"\f092"}.fa-stumbleupon{--fa:"\f1a4"}.fa-fedex{--fa:"\f797"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-shopify{--fa:"\e057"}.fa-neos{--fa:"\f612"}.fa-square-threads{--fa:"\e619"}.fa-hackerrank{--fa:"\f5f7"}.fa-researchgate{--fa:"\f4f8"}.fa-swift{--fa:"\f8e1"}.fa-angular{--fa:"\f420"}.fa-speakap{--fa:"\f3f3"}.fa-angrycreative{--fa:"\f36e"}.fa-y-combinator{--fa:"\f23b"}.fa-empire{--fa:"\f1d1"}.fa-envira{--fa:"\f299"}.fa-google-scholar{--fa:"\e63b"}.fa-square-gitlab{--fa:"\e5ae"}.fa-gitlab-square{--fa:"\e5ae"}.fa-studiovinari{--fa:"\f3f8"}.fa-pied-piper{--fa:"\f2ae"}.fa-wordpress{--fa:"\f19a"}.fa-product-hunt{--fa:"\f288"}.fa-firefox{--fa:"\f269"}.fa-linode{--fa:"\f2b8"}.fa-goodreads{--fa:"\f3a8"}.fa-square-odnoklassniki{--fa:"\f264"}.fa-odnoklassniki-square{--fa:"\f264"}.fa-jsfiddle{--fa:"\f1cc"}.fa-sith{--fa:"\f512"}.fa-themeisle{--fa:"\f2b2"}.fa-page4{--fa:"\f3d7"}.fa-hashnode{--fa:"\e499"}.fa-react{--fa:"\f41b"}.fa-cc-paypal{--fa:"\f1f4"}.fa-squarespace{--fa:"\f5be"}.fa-cc-stripe{--fa:"\f1f5"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-bitcoin{--fa:"\f379"}.fa-keycdn{--fa:"\f3ba"}.fa-opera{--fa:"\f26a"}.fa-itch-io{--fa:"\f83a"}.fa-umbraco{--fa:"\f8e8"}.fa-galactic-senate{--fa:"\f50d"}.fa-ubuntu{--fa:"\f7df"}.fa-draft2digital{--fa:"\f396"}.fa-stripe{--fa:"\f429"}.fa-houzz{--fa:"\f27c"}.fa-gg{--fa:"\f260"}.fa-dhl{--fa:"\f790"}.fa-square-pinterest{--fa:"\f0d3"}.fa-pinterest-square{--fa:"\f0d3"}.fa-xing{--fa:"\f168"}.fa-blackberry{--fa:"\f37b"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-playstation{--fa:"\f3df"}.fa-quinscape{--fa:"\f459"}.fa-less{--fa:"\f41d"}.fa-blogger-b{--fa:"\f37d"}.fa-opencart{--fa:"\f23d"}.fa-vine{--fa:"\f1ca"}.fa-signal-messenger{--fa:"\e663"}.fa-paypal{--fa:"\f1ed"}.fa-gitlab{--fa:"\f296"}.fa-typo3{--fa:"\f42b"}.fa-reddit-alien{--fa:"\f281"}.fa-yahoo{--fa:"\f19e"}.fa-dailymotion{--fa:"\e052"}.fa-affiliatetheme{--fa:"\f36b"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-bootstrap{--fa:"\f836"}.fa-odnoklassniki{--fa:"\f263"}.fa-nfc-symbol{--fa:"\e531"}.fa-mintbit{--fa:"\e62f"}.fa-ethereum{--fa:"\f42e"}.fa-speaker-deck{--fa:"\f83c"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-patreon{--fa:"\f3d9"}.fa-avianex{--fa:"\f374"}.fa-ello{--fa:"\f5f1"}.fa-gofore{--fa:"\f3a7"}.fa-bimobject{--fa:"\f378"}.fa-brave-reverse{--fa:"\e63d"}.fa-facebook-f{--fa:"\f39e"}.fa-square-google-plus{--fa:"\f0d4"}.fa-google-plus-square{--fa:"\f0d4"}.fa-web-awesome{--fa:"\e682"}.fa-mandalorian{--fa:"\f50f"}.fa-first-order-alt{--fa:"\f50a"}.fa-osi{--fa:"\f41a"}.fa-google-wallet{--fa:"\f1ee"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-periscope{--fa:"\f3da"}.fa-fulcrum{--fa:"\f50b"}.fa-cloudscale{--fa:"\f383"}.fa-forumbee{--fa:"\f211"}.fa-mizuni{--fa:"\f3cc"}.fa-schlix{--fa:"\f3ea"}.fa-square-xing{--fa:"\f169"}.fa-xing-square{--fa:"\f169"}.fa-bandcamp{--fa:"\f2d5"}.fa-wpforms{--fa:"\f298"}.fa-cloudversify{--fa:"\f385"}.fa-usps{--fa:"\f7e1"}.fa-megaport{--fa:"\f5a3"}.fa-magento{--fa:"\f3c4"}.fa-spotify{--fa:"\f1bc"}.fa-optin-monster{--fa:"\f23c"}.fa-fly{--fa:"\f417"}.fa-square-bluesky{--fa:"\e6a3"}.fa-aviato{--fa:"\f421"}.fa-itunes{--fa:"\f3b4"}.fa-cuttlefish{--fa:"\f38c"}.fa-blogger{--fa:"\f37c"}.fa-flickr{--fa:"\f16e"}.fa-viber{--fa:"\f409"}.fa-soundcloud{--fa:"\f1be"}.fa-digg{--fa:"\f1a6"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-letterboxd{--fa:"\e62d"}.fa-symfony{--fa:"\f83d"}.fa-maxcdn{--fa:"\f136"}.fa-etsy{--fa:"\f2d7"}.fa-facebook-messenger{--fa:"\f39f"}.fa-audible{--fa:"\f373"}.fa-think-peaks{--fa:"\f731"}.fa-bilibili{--fa:"\e3d9"}.fa-erlang{--fa:"\f39d"}.fa-x-twitter{--fa:"\e61b"}.fa-cotton-bureau{--fa:"\f89e"}.fa-dashcube{--fa:"\f210"}.fa-42-group{--fa:"\e080"}.fa-innosoft{--fa:"\e080"}.fa-stack-exchange{--fa:"\f18d"}.fa-elementor{--fa:"\f430"}.fa-square-pied-piper{--fa:"\e01e"}.fa-pied-piper-square{--fa:"\e01e"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-palfed{--fa:"\f3d8"}.fa-superpowers{--fa:"\f2dd"}.fa-resolving{--fa:"\f3e7"}.fa-xbox{--fa:"\f412"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-searchengin{--fa:"\f3eb"}.fa-tiktok{--fa:"\e07b"}.fa-square-facebook{--fa:"\f082"}.fa-facebook-square{--fa:"\f082"}.fa-renren{--fa:"\f18b"}.fa-linux{--fa:"\f17c"}.fa-glide{--fa:"\f2a5"}.fa-linkedin{--fa:"\f08c"}.fa-hubspot{--fa:"\f3b2"}.fa-deploydog{--fa:"\f38e"}.fa-twitch{--fa:"\f1e8"}.fa-flutter{--fa:"\e694"}.fa-ravelry{--fa:"\f2d9"}.fa-mixer{--fa:"\e056"}.fa-square-lastfm{--fa:"\f203"}.fa-lastfm-square{--fa:"\f203"}.fa-vimeo{--fa:"\f40a"}.fa-mendeley{--fa:"\f7b3"}.fa-uniregistry{--fa:"\f404"}.fa-figma{--fa:"\f799"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-dropbox{--fa:"\f16b"}.fa-instagram{--fa:"\f16d"}.fa-cmplid{--fa:"\e360"}.fa-upwork{--fa:"\e641"}.fa-facebook{--fa:"\f09a"}.fa-gripfire{--fa:"\f3ac"}.fa-jedi-order{--fa:"\f50e"}.fa-uikit{--fa:"\f403"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-phabricator{--fa:"\f3db"}.fa-ussunnah{--fa:"\f407"}.fa-earlybirds{--fa:"\f39a"}.fa-trade-federation{--fa:"\f513"}.fa-autoprefixer{--fa:"\f41c"}.fa-whatsapp{--fa:"\f232"}.fa-square-upwork{--fa:"\e67c"}.fa-slideshare{--fa:"\f1e7"}.fa-google-play{--fa:"\f3ab"}.fa-viadeo{--fa:"\f2a9"}.fa-line{--fa:"\f3c0"}.fa-google-drive{--fa:"\f3aa"}.fa-servicestack{--fa:"\f3ec"}.fa-simplybuilt{--fa:"\f215"}.fa-bitbucket{--fa:"\f171"}.fa-imdb{--fa:"\f2d8"}.fa-deezer{--fa:"\e077"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-jira{--fa:"\f7b1"}.fa-docker{--fa:"\f395"}.fa-screenpal{--fa:"\e570"}.fa-bluetooth{--fa:"\f293"}.fa-gitter{--fa:"\f426"}.fa-d-and-d{--fa:"\f38d"}.fa-microblog{--fa:"\e01a"}.fa-cc-diners-club{--fa:"\f24c"}.fa-gg-circle{--fa:"\f261"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-yandex{--fa:"\f413"}.fa-readme{--fa:"\f4d5"}.fa-html5{--fa:"\f13b"}.fa-sellsy{--fa:"\f213"}.fa-square-web-awesome{--fa:"\e683"}.fa-sass{--fa:"\f41e"}.fa-wirsindhandwerk{--fa:"\e2d0"}.fa-wsh{--fa:"\e2d0"}.fa-buromobelexperte{--fa:"\f37f"}.fa-salesforce{--fa:"\f83b"}.fa-octopus-deploy{--fa:"\e082"}.fa-medapps{--fa:"\f3c6"}.fa-ns8{--fa:"\f3d5"}.fa-pinterest-p{--fa:"\f231"}.fa-apper{--fa:"\f371"}.fa-fort-awesome{--fa:"\f286"}.fa-waze{--fa:"\f83f"}.fa-bluesky{--fa:"\e671"}.fa-cc-jcb{--fa:"\f24b"}.fa-snapchat{--fa:"\f2ab"}.fa-snapchat-ghost{--fa:"\f2ab"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-rust{--fa:"\e07a"}.fa-wix{--fa:"\f5cf"}.fa-square-behance{--fa:"\f1b5"}.fa-behance-square{--fa:"\f1b5"}.fa-supple{--fa:"\f3f9"}.fa-webflow{--fa:"\e65c"}.fa-rebel{--fa:"\f1d0"}.fa-css3{--fa:"\f13c"}.fa-staylinked{--fa:"\f3f5"}.fa-kaggle{--fa:"\f5fa"}.fa-space-awesome{--fa:"\e5ac"}.fa-deviantart{--fa:"\f1bd"}.fa-cpanel{--fa:"\f388"}.fa-goodreads-g{--fa:"\f3a9"}.fa-square-git{--fa:"\f1d2"}.fa-git-square{--fa:"\f1d2"}.fa-square-tumblr{--fa:"\f174"}.fa-tumblr-square{--fa:"\f174"}.fa-trello{--fa:"\f181"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-get-pocket{--fa:"\f265"}.fa-perbyte{--fa:"\e083"}.fa-grunt{--fa:"\f3ad"}.fa-weebly{--fa:"\f5cc"}.fa-connectdevelop{--fa:"\f20e"}.fa-leanpub{--fa:"\f212"}.fa-black-tie{--fa:"\f27e"}.fa-themeco{--fa:"\f5c6"}.fa-python{--fa:"\f3e2"}.fa-android{--fa:"\f17b"}.fa-bots{--fa:"\e340"}.fa-free-code-camp{--fa:"\f2c5"}.fa-hornbill{--fa:"\f592"}.fa-js{--fa:"\f3b8"}.fa-ideal{--fa:"\e013"}.fa-git{--fa:"\f1d3"}.fa-dev{--fa:"\f6cc"}.fa-sketch{--fa:"\f7c6"}.fa-yandex-international{--fa:"\f414"}.fa-cc-amex{--fa:"\f1f3"}.fa-uber{--fa:"\f402"}.fa-github{--fa:"\f09b"}.fa-php{--fa:"\f457"}.fa-alipay{--fa:"\f642"}.fa-youtube{--fa:"\f167"}.fa-skyatlas{--fa:"\f216"}.fa-firefox-browser{--fa:"\e007"}.fa-replyd{--fa:"\f3e6"}.fa-suse{--fa:"\f7d6"}.fa-jenkins{--fa:"\f3b6"}.fa-twitter{--fa:"\f099"}.fa-rockrms{--fa:"\f3e9"}.fa-pinterest{--fa:"\f0d2"}.fa-buffer{--fa:"\f837"}.fa-npm{--fa:"\f3d4"}.fa-yammer{--fa:"\f840"}.fa-btc{--fa:"\f15a"}.fa-dribbble{--fa:"\f17d"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-internet-explorer{--fa:"\f26b"}.fa-stubber{--fa:"\e5c7"}.fa-telegram{--fa:"\f2c6"}.fa-telegram-plane{--fa:"\f2c6"}.fa-old-republic{--fa:"\f510"}.fa-odysee{--fa:"\e5c6"}.fa-square-whatsapp{--fa:"\f40c"}.fa-whatsapp-square{--fa:"\f40c"}.fa-node-js{--fa:"\f3d3"}.fa-edge-legacy{--fa:"\e078"}.fa-slack{--fa:"\f198"}.fa-slack-hash{--fa:"\f198"}.fa-medrt{--fa:"\f3c8"}.fa-usb{--fa:"\f287"}.fa-tumblr{--fa:"\f173"}.fa-vaadin{--fa:"\f408"}.fa-quora{--fa:"\f2c4"}.fa-square-x-twitter{--fa:"\e61a"}.fa-reacteurope{--fa:"\f75d"}.fa-medium{--fa:"\f23a"}.fa-medium-m{--fa:"\f23a"}.fa-amilia{--fa:"\f36d"}.fa-mixcloud{--fa:"\f289"}.fa-flipboard{--fa:"\f44d"}.fa-viacoin{--fa:"\f237"}.fa-critical-role{--fa:"\f6c9"}.fa-sitrox{--fa:"\e44a"}.fa-discourse{--fa:"\f393"}.fa-joomla{--fa:"\f1aa"}.fa-mastodon{--fa:"\f4f6"}.fa-airbnb{--fa:"\f834"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-buy-n-large{--fa:"\f8a6"}.fa-gulp{--fa:"\f3ae"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-strava{--fa:"\f428"}.fa-ember{--fa:"\f423"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-teamspeak{--fa:"\f4f9"}.fa-pushed{--fa:"\f3e1"}.fa-wordpress-simple{--fa:"\f411"}.fa-nutritionix{--fa:"\f3d6"}.fa-wodu{--fa:"\e088"}.fa-google-pay{--fa:"\e079"}.fa-intercom{--fa:"\f7af"}.fa-zhihu{--fa:"\f63f"}.fa-korvue{--fa:"\f42f"}.fa-pix{--fa:"\e43a"}.fa-steam-symbol{--fa:"\f3f6"}/*!* Font Awesome Free 6.7.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 2024 Fonticons, Inc.*/.fa.fa-glass{--fa:"\f000"}.fa.fa-envelope-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-envelope-o{--fa:"\f0e0"}.fa.fa-star-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-star-o{--fa:"\f005"}.fa.fa-remove{--fa:"\f00d"}.fa.fa-close{--fa:"\f00d"}.fa.fa-gear{--fa:"\f013"}.fa.fa-trash-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-trash-o{--fa:"\f2ed"}.fa.fa-home{--fa:"\f015"}.fa.fa-file-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-o{--fa:"\f15b"}.fa.fa-clock-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-clock-o{--fa:"\f017"}.fa.fa-arrow-circle-o-down{font-family:'font awesome 6 free';font-weight:400}.fa.fa-arrow-circle-o-down{--fa:"\f358"}.fa.fa-arrow-circle-o-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-arrow-circle-o-up{--fa:"\f35b"}.fa.fa-play-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-play-circle-o{--fa:"\f144"}.fa.fa-repeat{--fa:"\f01e"}.fa.fa-rotate-right{--fa:"\f01e"}.fa.fa-refresh{--fa:"\f021"}.fa.fa-list-alt{font-family:'font awesome 6 free';font-weight:400}.fa.fa-list-alt{--fa:"\f022"}.fa.fa-dedent{--fa:"\f03b"}.fa.fa-video-camera{--fa:"\f03d"}.fa.fa-picture-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-picture-o{--fa:"\f03e"}.fa.fa-photo{font-family:'font awesome 6 free';font-weight:400}.fa.fa-photo{--fa:"\f03e"}.fa.fa-image{font-family:'font awesome 6 free';font-weight:400}.fa.fa-image{--fa:"\f03e"}.fa.fa-map-marker{--fa:"\f3c5"}.fa.fa-pencil-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-pencil-square-o{--fa:"\f044"}.fa.fa-edit{font-family:'font awesome 6 free';font-weight:400}.fa.fa-edit{--fa:"\f044"}.fa.fa-share-square-o{--fa:"\f14d"}.fa.fa-check-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-check-square-o{--fa:"\f14a"}.fa.fa-arrows{--fa:"\f0b2"}.fa.fa-times-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-times-circle-o{--fa:"\f057"}.fa.fa-check-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-check-circle-o{--fa:"\f058"}.fa.fa-mail-forward{--fa:"\f064"}.fa.fa-expand{--fa:"\f424"}.fa.fa-compress{--fa:"\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{--fa:"\f071"}.fa.fa-calendar{--fa:"\f073"}.fa.fa-arrows-v{--fa:"\f338"}.fa.fa-arrows-h{--fa:"\f337"}.fa.fa-bar-chart{--fa:"\e0e3"}.fa.fa-bar-chart-o{--fa:"\e0e3"}.fa.fa-twitter-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-twitter-square{--fa:"\f081"}.fa.fa-facebook-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-facebook-square{--fa:"\f082"}.fa.fa-gears{--fa:"\f085"}.fa.fa-thumbs-o-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-thumbs-o-up{--fa:"\f164"}.fa.fa-thumbs-o-down{font-family:'font awesome 6 free';font-weight:400}.fa.fa-thumbs-o-down{--fa:"\f165"}.fa.fa-heart-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-heart-o{--fa:"\f004"}.fa.fa-sign-out{--fa:"\f2f5"}.fa.fa-linkedin-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-linkedin-square{--fa:"\f08c"}.fa.fa-thumb-tack{--fa:"\f08d"}.fa.fa-external-link{--fa:"\f35d"}.fa.fa-sign-in{--fa:"\f2f6"}.fa.fa-github-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-github-square{--fa:"\f092"}.fa.fa-lemon-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-lemon-o{--fa:"\f094"}.fa.fa-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-square-o{--fa:"\f0c8"}.fa.fa-bookmark-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-bookmark-o{--fa:"\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{--fa:"\f39e"}.fa.fa-facebook-f{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-facebook-f{--fa:"\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{--fa:"\f09e"}.fa.fa-hdd-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hdd-o{--fa:"\f0a0"}.fa.fa-hand-o-right{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-o-right{--fa:"\f0a4"}.fa.fa-hand-o-left{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-o-left{--fa:"\f0a5"}.fa.fa-hand-o-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-o-up{--fa:"\f0a6"}.fa.fa-hand-o-down{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-o-down{--fa:"\f0a7"}.fa.fa-globe{--fa:"\f57d"}.fa.fa-tasks{--fa:"\f828"}.fa.fa-arrows-alt{--fa:"\f31e"}.fa.fa-group{--fa:"\f0c0"}.fa.fa-chain{--fa:"\f0c1"}.fa.fa-cut{--fa:"\f0c4"}.fa.fa-files-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-files-o{--fa:"\f0c5"}.fa.fa-floppy-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-floppy-o{--fa:"\f0c7"}.fa.fa-save{font-family:'font awesome 6 free';font-weight:400}.fa.fa-save{--fa:"\f0c7"}.fa.fa-navicon{--fa:"\f0c9"}.fa.fa-reorder{--fa:"\f0c9"}.fa.fa-magic{--fa:"\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{--fa:"\f0d3"}.fa.fa-google-plus-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-google-plus-square{--fa:"\f0d4"}.fa.fa-google-plus{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-google-plus{--fa:"\f0d5"}.fa.fa-money{--fa:"\f3d1"}.fa.fa-unsorted{--fa:"\f0dc"}.fa.fa-sort-desc{--fa:"\f0dd"}.fa.fa-sort-asc{--fa:"\f0de"}.fa.fa-linkedin{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-linkedin{--fa:"\f0e1"}.fa.fa-rotate-left{--fa:"\f0e2"}.fa.fa-legal{--fa:"\f0e3"}.fa.fa-tachometer{--fa:"\f625"}.fa.fa-dashboard{--fa:"\f625"}.fa.fa-comment-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-comment-o{--fa:"\f075"}.fa.fa-comments-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-comments-o{--fa:"\f086"}.fa.fa-flash{--fa:"\f0e7"}.fa.fa-clipboard{--fa:"\f0ea"}.fa.fa-lightbulb-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-lightbulb-o{--fa:"\f0eb"}.fa.fa-exchange{--fa:"\f362"}.fa.fa-cloud-download{--fa:"\f0ed"}.fa.fa-cloud-upload{--fa:"\f0ee"}.fa.fa-bell-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-bell-o{--fa:"\f0f3"}.fa.fa-cutlery{--fa:"\f2e7"}.fa.fa-file-text-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-text-o{--fa:"\f15c"}.fa.fa-building-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-building-o{--fa:"\f1ad"}.fa.fa-hospital-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hospital-o{--fa:"\f0f8"}.fa.fa-tablet{--fa:"\f3fa"}.fa.fa-mobile{--fa:"\f3cd"}.fa.fa-mobile-phone{--fa:"\f3cd"}.fa.fa-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-circle-o{--fa:"\f111"}.fa.fa-mail-reply{--fa:"\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{--fa:"\f07b"}.fa.fa-folder-open-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-folder-open-o{--fa:"\f07c"}.fa.fa-smile-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-smile-o{--fa:"\f118"}.fa.fa-frown-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-frown-o{--fa:"\f119"}.fa.fa-meh-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-meh-o{--fa:"\f11a"}.fa.fa-keyboard-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-keyboard-o{--fa:"\f11c"}.fa.fa-flag-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-flag-o{--fa:"\f024"}.fa.fa-mail-reply-all{--fa:"\f122"}.fa.fa-star-half-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-star-half-o{--fa:"\f5c0"}.fa.fa-star-half-empty{font-family:'font awesome 6 free';font-weight:400}.fa.fa-star-half-empty{--fa:"\f5c0"}.fa.fa-star-half-full{font-family:'font awesome 6 free';font-weight:400}.fa.fa-star-half-full{--fa:"\f5c0"}.fa.fa-code-fork{--fa:"\f126"}.fa.fa-chain-broken{--fa:"\f127"}.fa.fa-unlink{--fa:"\f127"}.fa.fa-calendar-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-calendar-o{--fa:"\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{--fa:"\f09c"}.fa.fa-minus-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-minus-square-o{--fa:"\f146"}.fa.fa-level-up{--fa:"\f3bf"}.fa.fa-level-down{--fa:"\f3be"}.fa.fa-pencil-square{--fa:"\f14b"}.fa.fa-external-link-square{--fa:"\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{--fa:"\f150"}.fa.fa-toggle-down{font-family:'font awesome 6 free';font-weight:400}.fa.fa-toggle-down{--fa:"\f150"}.fa.fa-caret-square-o-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-caret-square-o-up{--fa:"\f151"}.fa.fa-toggle-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-toggle-up{--fa:"\f151"}.fa.fa-caret-square-o-right{font-family:'font awesome 6 free';font-weight:400}.fa.fa-caret-square-o-right{--fa:"\f152"}.fa.fa-toggle-right{font-family:'font awesome 6 free';font-weight:400}.fa.fa-toggle-right{--fa:"\f152"}.fa.fa-eur{--fa:"\f153"}.fa.fa-euro{--fa:"\f153"}.fa.fa-gbp{--fa:"\f154"}.fa.fa-usd{--fa:"\24"}.fa.fa-dollar{--fa:"\24"}.fa.fa-inr{--fa:"\e1bc"}.fa.fa-rupee{--fa:"\e1bc"}.fa.fa-jpy{--fa:"\f157"}.fa.fa-cny{--fa:"\f157"}.fa.fa-rmb{--fa:"\f157"}.fa.fa-yen{--fa:"\f157"}.fa.fa-rub{--fa:"\f158"}.fa.fa-ruble{--fa:"\f158"}.fa.fa-rouble{--fa:"\f158"}.fa.fa-krw{--fa:"\f159"}.fa.fa-won{--fa:"\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{--fa:"\f15a"}.fa.fa-file-text{--fa:"\f15c"}.fa.fa-sort-alpha-asc{--fa:"\f15d"}.fa.fa-sort-alpha-desc{--fa:"\f881"}.fa.fa-sort-amount-asc{--fa:"\f884"}.fa.fa-sort-amount-desc{--fa:"\f160"}.fa.fa-sort-numeric-asc{--fa:"\f162"}.fa.fa-sort-numeric-desc{--fa:"\f886"}.fa.fa-youtube-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-youtube-square{--fa:"\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{--fa:"\f169"}.fa.fa-youtube-play{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-youtube-play{--fa:"\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{--fa:"\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{--fa:"\f174"}.fa.fa-long-arrow-down{--fa:"\f309"}.fa.fa-long-arrow-up{--fa:"\f30c"}.fa.fa-long-arrow-left{--fa:"\f30a"}.fa.fa-long-arrow-right{--fa:"\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{--fa:"\f184"}.fa.fa-sun-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-sun-o{--fa:"\f185"}.fa.fa-moon-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-moon-o{--fa:"\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{--fa:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:'font awesome 6 free';font-weight:400}.fa.fa-arrow-circle-o-left{--fa:"\f359"}.fa.fa-caret-square-o-left{font-family:'font awesome 6 free';font-weight:400}.fa.fa-caret-square-o-left{--fa:"\f191"}.fa.fa-toggle-left{font-family:'font awesome 6 free';font-weight:400}.fa.fa-toggle-left{--fa:"\f191"}.fa.fa-dot-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-dot-circle-o{--fa:"\f192"}.fa.fa-vimeo-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-vimeo-square{--fa:"\f194"}.fa.fa-try{--fa:"\e2bb"}.fa.fa-turkish-lira{--fa:"\e2bb"}.fa.fa-plus-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-plus-square-o{--fa:"\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{--fa:"\f19c"}.fa.fa-bank{--fa:"\f19c"}.fa.fa-mortar-board{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f1b7"}.fa.fa-automobile{--fa:"\f1b9"}.fa.fa-cab{--fa:"\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{--fa:"\f1c1"}.fa.fa-file-word-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-word-o{--fa:"\f1c2"}.fa.fa-file-excel-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-excel-o{--fa:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-powerpoint-o{--fa:"\f1c4"}.fa.fa-file-image-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-image-o{--fa:"\f1c5"}.fa.fa-file-photo-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-photo-o{--fa:"\f1c5"}.fa.fa-file-picture-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-picture-o{--fa:"\f1c5"}.fa.fa-file-archive-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-archive-o{--fa:"\f1c6"}.fa.fa-file-zip-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-zip-o{--fa:"\f1c6"}.fa.fa-file-audio-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-audio-o{--fa:"\f1c7"}.fa.fa-file-sound-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-sound-o{--fa:"\f1c7"}.fa.fa-file-video-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-video-o{--fa:"\f1c8"}.fa.fa-file-movie-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-movie-o{--fa:"\f1c8"}.fa.fa-file-code-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-code-o{--fa:"\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{--fa:"\f1cd"}.fa.fa-life-buoy{--fa:"\f1cd"}.fa.fa-life-saver{--fa:"\f1cd"}.fa.fa-support{--fa:"\f1cd"}.fa.fa-circle-o-notch{--fa:"\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{--fa:"\f1d0"}.fa.fa-resistance{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-resistance{--fa:"\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{--fa:"\f1d1"}.fa.fa-git-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-git-square{--fa:"\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{--fa:"\f1d4"}.fa.fa-yc-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-yc-square{--fa:"\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{--fa:"\f1d7"}.fa.fa-send{--fa:"\f1d8"}.fa.fa-paper-plane-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-paper-plane-o{--fa:"\f1d8"}.fa.fa-send-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-send-o{--fa:"\f1d8"}.fa.fa-circle-thin{font-family:'font awesome 6 free';font-weight:400}.fa.fa-circle-thin{--fa:"\f111"}.fa.fa-header{--fa:"\f1dc"}.fa.fa-futbol-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-futbol-o{--fa:"\f1e3"}.fa.fa-soccer-ball-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-soccer-ball-o{--fa:"\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{--fa:"\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{--fa:"\f1f6"}.fa.fa-trash{--fa:"\f2ed"}.fa.fa-copyright{font-family:'font awesome 6 free';font-weight:400}.fa.fa-eyedropper{--fa:"\f1fb"}.fa.fa-area-chart{--fa:"\f1fe"}.fa.fa-pie-chart{--fa:"\f200"}.fa.fa-line-chart{--fa:"\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{--fa:"\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{--fa:"\f20a"}.fa.fa-ils{--fa:"\f20b"}.fa.fa-shekel{--fa:"\f20b"}.fa.fa-sheqel{--fa:"\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{--fa:"\f3a5"}.fa.fa-transgender{--fa:"\f224"}.fa.fa-intersex{--fa:"\f224"}.fa.fa-transgender-alt{--fa:"\f225"}.fa.fa-facebook-official{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-facebook-official{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f240"}.fa.fa-battery{--fa:"\f240"}.fa.fa-battery-3{--fa:"\f241"}.fa.fa-battery-2{--fa:"\f242"}.fa.fa-battery-1{--fa:"\f243"}.fa.fa-battery-0{--fa:"\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{--fa:"\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{--fa:"\f254"}.fa.fa-hourglass-1{--fa:"\f251"}.fa.fa-hourglass-2{--fa:"\f252"}.fa.fa-hourglass-3{--fa:"\f253"}.fa.fa-hand-rock-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-rock-o{--fa:"\f255"}.fa.fa-hand-grab-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-grab-o{--fa:"\f255"}.fa.fa-hand-paper-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-paper-o{--fa:"\f256"}.fa.fa-hand-stop-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-stop-o{--fa:"\f256"}.fa.fa-hand-scissors-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-scissors-o{--fa:"\f257"}.fa.fa-hand-lizard-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-lizard-o{--fa:"\f258"}.fa.fa-hand-spock-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-spock-o{--fa:"\f259"}.fa.fa-hand-pointer-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-pointer-o{--fa:"\f25a"}.fa.fa-hand-peace-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-peace-o{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f271"}.fa.fa-calendar-minus-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-calendar-minus-o{--fa:"\f272"}.fa.fa-calendar-times-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-calendar-times-o{--fa:"\f273"}.fa.fa-calendar-check-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-calendar-check-o{--fa:"\f274"}.fa.fa-map-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-map-o{--fa:"\f279"}.fa.fa-commenting{--fa:"\f4ad"}.fa.fa-commenting-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-commenting-o{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f28b"}.fa.fa-stop-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-stop-circle-o{--fa:"\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{--fa:"\f368"}.fa.fa-question-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-question-circle-o{--fa:"\f059"}.fa.fa-volume-control-phone{--fa:"\f2a0"}.fa.fa-asl-interpreting{--fa:"\f2a3"}.fa.fa-deafness{--fa:"\f2a4"}.fa.fa-hard-of-hearing{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f2ab"}.fa.fa-snapchat-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-snapchat-square{--fa:"\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{--fa:"\f2b3"}.fa.fa-google-plus-circle{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-google-plus-circle{--fa:"\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{--fa:"\f2b4"}.fa.fa-handshake-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-handshake-o{--fa:"\f2b5"}.fa.fa-envelope-open-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-envelope-open-o{--fa:"\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{--fa:"\f2b9"}.fa.fa-vcard{--fa:"\f2bb"}.fa.fa-address-card-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-address-card-o{--fa:"\f2bb"}.fa.fa-vcard-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-vcard-o{--fa:"\f2bb"}.fa.fa-user-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-user-circle-o{--fa:"\f2bd"}.fa.fa-user-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-user-o{--fa:"\f007"}.fa.fa-id-badge{font-family:'font awesome 6 free';font-weight:400}.fa.fa-drivers-license{--fa:"\f2c2"}.fa.fa-id-card-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-id-card-o{--fa:"\f2c2"}.fa.fa-drivers-license-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-drivers-license-o{--fa:"\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{--fa:"\f2c7"}.fa.fa-thermometer{--fa:"\f2c7"}.fa.fa-thermometer-3{--fa:"\f2c8"}.fa.fa-thermometer-2{--fa:"\f2c9"}.fa.fa-thermometer-1{--fa:"\f2ca"}.fa.fa-thermometer-0{--fa:"\f2cb"}.fa.fa-bathtub{--fa:"\f2cd"}.fa.fa-s15{--fa:"\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{--fa:"\f410"}.fa.fa-window-close-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-window-close-o{--fa:"\f410"}.fa.fa-times-rectangle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-times-rectangle-o{--fa:"\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{--fa:"\f2da"}.fa.fa-snowflake-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-snowflake-o{--fa:"\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}*,*:after,*:before{box-sizing:inherit}html{box-sizing:border-box;font-size:62.5%}body{color:#212121;background-color:#fafafa;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif;font-size:1.8em;font-weight:400;line-height:1.8em}@media only screen and (max-width:768px){body{font-size:1.6em;line-height:1.6em}}iframe[src*=disqus]{color-scheme:light}a{font-weight:500;color:#1565c0;text-decoration:none;transition:all .25s ease-in}a:focus,a:hover{text-decoration:underline}p{margin:2rem 0}@media only screen and (max-width:768px){p{margin:1.5rem 0}}h1,h2,h3,h4,h5,h6{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif;font-weight:600;color:#000;margin:4rem 0 2.5rem}h1:hover .heading-link,h2:hover .heading-link,h3:hover .heading-link,h4:hover .heading-link,h5:hover .heading-link,h6:hover .heading-link{visibility:visible}h1 .heading-link,h2 .heading-link,h3 .heading-link,h4 .heading-link,h5 .heading-link,h6 .heading-link{color:#1565c0;font-weight:inherit;text-decoration:none;font-size:80%;visibility:hidden}h1 .title-link,h2 .title-link,h3 .title-link,h4 .title-link,h5 .title-link,h6 .title-link{color:inherit;font-weight:inherit;text-decoration:none}h1{font-size:3.2rem;line-height:3.6rem}@media only screen and (max-width:768px){h1{font-size:3rem;line-height:3.4rem}}h2{font-size:2.8rem;line-height:3.2rem}@media only screen and (max-width:768px){h2{font-size:2.6rem;line-height:3rem}}h3{font-size:2.4rem;line-height:2.8rem}@media only screen and (max-width:768px){h3{font-size:2.2rem;line-height:2.6rem}}h4{font-size:2.2rem;line-height:2.6rem}@media only screen and (max-width:768px){h4{font-size:2rem;line-height:2.4rem}}h5{font-size:2rem;line-height:2.4rem}@media only screen and (max-width:768px){h5{font-size:1.8rem;line-height:2.2rem}}h6{font-size:1.8rem;line-height:2.2rem}@media only screen and (max-width:768px){h6{font-size:1.6rem;line-height:2rem}}b,strong{font-weight:700}.highlight div,.highlight pre{margin:2rem 0;padding:1rem;border-radius:1rem;overflow-x:auto}pre{display:block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1.6rem;font-weight:400;line-height:2.6rem;overflow-x:auto;margin:2rem 0;padding:1rem;border-radius:1rem}pre code{display:inline-block;background-color:inherit;color:inherit}code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1.6rem;font-weight:400;border-radius:.6rem;padding:.3rem .6rem;background-color:#ccc;color:#212121}@media only screen and (max-width:768px){code{font-size:1.5rem}}blockquote{border-left:2px solid #e0e0e0;padding-left:2rem;line-height:2.2rem;font-weight:400;font-style:italic}*{-webkit-tap-highlight-color:transparent}th,td{padding:1.6rem}table{border-collapse:collapse}table td,table th{border:2px solid #000}table tr:first-child th{border-top:0}table tr:last-child td{border-bottom:0}table tr td:first-child,table tr th:first-child{border-left:0}table tr td:last-child,table tr th:last-child{border-right:0}img{max-width:100%}figure{text-align:center}.footnotes ol li p{margin:0}.preload-transitions *{-webkit-transition:none !important;-moz-transition:none !important;-ms-transition:none !important;-o-transition:none !important;transition:none !important}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.container{margin:1rem auto;max-width:90rem;width:100%;padding-left:2rem;padding-right:2rem}.fab{font-weight:400}.fas{font-weight:700}.float-right{float:right}.float-left{float:left}.fab{font-weight:400}.fas{font-weight:900}.content{flex:1;display:flex;margin-top:1.6rem;margin-bottom:3.2rem}@media only screen and (max-width:768px){.content{margin-top:1rem;margin-bottom:1.6rem}}.content header{margin-top:6.4rem;margin-bottom:3.2rem}.content header h1{font-size:4.2rem;line-height:4.6rem;margin:0}@media only screen and (max-width:768px){.content header h1{font-size:4rem;line-height:4.4rem}}.content article a:where(.external-link):not(:has(img)):after{content:"\f08e";padding-left:.5em;font-size:.75em;display:inline}.content article details summary{cursor:pointer}.content article footer{margin-top:4rem}.content article footer .see-also{margin:3.2rem 0}.content article footer .see-also h3{margin:3.2rem 0}.content article p{text-align:justify;text-justify:auto;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.content .post .post-title{margin-bottom:.75em}.content .post .post-meta i{text-align:center;width:1.6rem;margin-left:0;margin-right:.5rem}.content .post .post-meta .date .posted-on{margin-left:0;margin-right:1.5rem}.content .post .post-meta .tags .tag{display:inline-block;padding:.3rem .6rem;background-color:#e0e0e0;border-radius:.6rem;line-height:1.5em}.content .post .post-meta .tags .tag a{color:#212121}.content .post .post-meta .tags .tag a:active{color:#212121}.content figure{margin:0;padding:0}.content figcaption p{text-align:center;font-style:italic;font-size:1.6rem;margin:0}.avatar img{width:20rem;height:auto;border-radius:50%}@media only screen and (max-width:768px){.avatar img{width:17rem}}.list ul{margin:3.2rem 0;list-style:none;padding:0}.list ul li{font-size:1.8rem}@media only screen and (max-width:768px){.list ul li{margin:1.6rem 0}}.list ul li .date{display:inline-block;flex:1;width:20rem;text-align:right;margin-right:3rem}@media only screen and (max-width:768px){.list ul li .date{display:block;text-align:left}}.list ul li .title{font-size:1.8rem;flex:2;color:#212121;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif;font-weight:700}.list ul li .title:hover,.list ul li .title:focus{color:#1565c0}@media only screen and (min-width:768.1px){.list ul:not(.pagination) li{display:flex}}.centered{display:flex;align-items:center;justify-content:center}.centered .about{text-align:center}.centered .about h1{margin-top:2rem;margin-bottom:.5rem}.centered .about h2{margin-top:1rem;margin-bottom:.5rem;font-size:2.4rem}@media only screen and (max-width:768px){.centered .about h2{font-size:2rem}}.centered .about ul{list-style:none;margin:3rem 0 1rem;padding:0;cursor:pointer}.centered .about ul li{display:inline-block;position:relative}.centered .about ul li a{color:#212121;text-transform:uppercase;margin-left:1rem;margin-right:1rem;font-size:1.6rem}.centered .about ul li a:hover,.centered .about ul li a:focus{color:#1565c0}@media only screen and (max-width:768px){.centered .about ul li a{font-size:1.5rem}}.centered .error{text-align:center}.centered .error h1{margin-top:2rem;margin-bottom:.5rem;font-size:4.6rem}@media only screen and (max-width:768px){.centered .error h1{font-size:3.2rem}}.centered .error h2{margin-top:2rem;margin-bottom:3.2rem;font-size:3.2rem}@media only screen and (max-width:768px){.centered .error h2{font-size:2.8rem}}.notice{border-radius:.2rem;position:relative;margin:2rem 0;padding:0 .75rem;overflow:auto}.notice .notice-title{position:relative;font-weight:700;margin:0 -.75rem;padding:.2rem 3.5rem;border-bottom:1px solid #fafafa}.notice .notice-title i{position:absolute;top:50%;left:1.8rem;transform:translate(-50%,-50%)}.notice .notice-content{display:block;margin:2rem}.notice.note{background-color:#7e57c21a}.notice.note .notice-title{background-color:#673ab71a}.notice.note .notice-title i{color:#5e35b1}.notice.tip{background-color:#26a69a1a}.notice.tip .notice-title{background-color:#0096881a}.notice.tip .notice-title i{color:#00897b}.notice.example{background-color:#8d6e631a}.notice.example .notice-title{background-color:#7955481a}.notice.example .notice-title i{color:#6d4c41}.notice.question{background-color:#9ccc651a}.notice.question .notice-title{background-color:#8bc34a1a}.notice.question .notice-title i{color:#7cb342}.notice.info{background-color:#42a5f51a}.notice.info .notice-title{background-color:#2196f31a}.notice.info .notice-title i{color:#1e88e5}.notice.warning{background-color:#ffca281a}.notice.warning .notice-title{background-color:#ffc1071a}.notice.warning .notice-title i{color:#ffb300}.notice.error{background-color:#ef53501a}.notice.error .notice-title{background-color:#f443361a}.notice.error .notice-title i{color:#e53935}.navigation{height:6rem;width:100%}.navigation a,.navigation span{display:inline;font-size:1.7rem;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif;font-weight:600;color:#212121}.navigation a:hover,.navigation a:focus{color:#1565c0}.navigation .navigation-title{letter-spacing:.1rem;text-transform:uppercase}.navigation .navigation-list{float:right;list-style:none;margin-bottom:0;margin-top:0}@media only screen and (max-width:768px){.navigation .navigation-list{position:relative;top:2rem;right:0;z-index:5;visibility:hidden;opacity:0;padding:0;max-height:0;width:100%;background-color:#fafafa;border-top:solid 2px #e0e0e0;border-bottom:solid 2px #e0e0e0;transition:opacity .25s,max-height .15s linear}}.navigation .navigation-list .navigation-item{float:left;margin:0;position:relative}@media only screen and (max-width:768px){.navigation .navigation-list .navigation-item{float:none !important;text-align:center}.navigation .navigation-list .navigation-item a,.navigation .navigation-list .navigation-item span{line-height:5rem}}.navigation .navigation-list .navigation-item a,.navigation .navigation-list .navigation-item span{margin-left:1rem;margin-right:1rem}@media only screen and (max-width:768px){.navigation .navigation-list .separator{display:none}}@media only screen and (max-width:768px){.navigation .navigation-list .menu-separator{border-top:2px solid #212121;margin:0 8rem}.navigation .navigation-list .menu-separator span{display:none}}.navigation #dark-mode-toggle{margin:1.7rem 0;font-size:2.4rem;line-height:inherit;bottom:2rem;left:2rem;z-index:100;position:fixed}.navigation #menu-toggle{display:none}@media only screen and (max-width:768px){.navigation #menu-toggle{display:initial;position:relative;visibility:hidden}.navigation #menu-toggle:checked+label>i{color:#e0e0e0}.navigation #menu-toggle:checked+label+ul{visibility:visible;opacity:1;max-height:100rem}.navigation #menu-toggle:focus-visible+label{outline-style:auto}}.navigation .menu-button{display:none}@media only screen and (max-width:768px){.navigation .menu-button{position:relative;display:block;font-size:2.4rem;font-weight:400}}.navigation .menu-button i:hover,.navigation .menu-button i:focus{color:#000}.navigation i{color:#212121;cursor:pointer}.navigation i:hover,.navigation i:focus{color:#1565c0}.pagination{display:flex;justify-content:center;margin-top:6rem;text-align:center;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif}.pagination li{display:inline;text-align:center;font-weight:700;padding:0 5px;margin:0;text-align:center;width:2.2rem}.pagination li a{font-weight:300}.tabs{display:flex;flex-wrap:wrap;margin:2rem 0;position:relative}.tabs.tabs-left{justify-content:flex-start}.tabs.tabs-left label.tab-label{margin-right:.5rem}.tabs.tabs-left .tab-content{border-radius:0 4px 4px 4px}.tabs.tabs-right{justify-content:flex-end}.tabs.tabs-right label.tab-label{margin-left:.5rem}.tabs.tabs-right .tab-content{border-radius:4px 0 4px 4px}.tabs input.tab-input{display:none}.tabs label.tab-label{background-color:#e0e0e0;border-color:#ccc;border-radius:4px 4px 0 0;border-style:solid;border-bottom-style:hidden;border-width:1px;cursor:pointer;display:inline-block;order:1;padding:.3rem .6rem;position:relative;top:1px;user-select:none}.tabs input.tab-input:checked+label.tab-label{background-color:#fafafa}.tabs .tab-content{background-color:#fafafa;border-color:#ccc;border-style:solid;border-width:1px;display:none;order:2;padding:1rem;width:100%}.tabs.tabs-code .tab-content{padding:.5rem}.tabs.tabs-code .tab-content pre{margin:0}.taxonomy li{display:inline-block;margin:.9rem}.taxonomy .taxonomy-element{display:block;padding:.3rem .9rem;background-color:#e0e0e0;border-radius:.6rem}.taxonomy .taxonomy-element a{color:#212121}.taxonomy .taxonomy-element a:active{color:#212121}.footer{width:100%;text-align:center;font-size:1.6rem;line-height:2rem;margin-bottom:1rem}@media only screen and (max-width:768px){.footer{font-size:1.5rem}}.footer a{color:#1565c0}.float-container{bottom:2rem;right:2rem;z-index:100;position:fixed;font-size:1.6em}.float-container a{position:relative;display:inline-block;width:3rem;height:3rem;font-size:2rem;color:#000;background-color:#e0e0e0;border-radius:.2rem;opacity:.5;transition:all .25s ease-in}.float-container a:hover,.float-container a:focus{color:#1565c0;opacity:1}@media only screen and (max-width:768px){.float-container a:hover,.float-container a:focus{color:#000;opacity:.5}}.float-container a i{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mastodon-wrapper{display:flex;gap:3rem;flex-direction:row}.comment-level{max-width:3rem;min-width:3rem}.reply-original{display:none}.mastodon-comment{background-color:var(--body-background);border-radius:var(--card-border-radius);padding:var(--card-padding);margin-bottom:1rem;display:flex;gap:1rem;flex-direction:column;flex-grow:2}.mastodon-comment .comment{display:flex;flex-direction:row;gap:1rem;flex-wrap:true}.mastodon-comment .comment-avatar img{width:6rem}.mastodon-comment .content{flex-grow:2}.mastodon-comment .comment-author{display:flex;flex-direction:column}.mastodon-comment .comment-author-name{font-weight:700}.mastodon-comment .comment-author-name a{display:flex;align-items:center}.mastodon-comment .comment-author-date{margin-left:auto}.mastodon-comment .disabled{color:var(--accent-color)}.mastodon-comment-content p:first-child{margin-top:0}.mastodon{--dlg-bg:#282c37;--dlg-w:600px;--dlg-color:#9baec8;--dlg-button-p:0.75em 2em;--dlg-outline-c:#00D9F5}.bg{background-color:#fff}.chroma{background-color:#fff}.chroma .err{color:#a61717;background-color:#e3d2d2}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#ffc}.chroma .lnt{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#000;font-weight:700}.chroma .kc{color:#000;font-weight:700}.chroma .kd{color:#000;font-weight:700}.chroma .kn{color:#000;font-weight:700}.chroma .kp{color:#000;font-weight:700}.chroma .kr{color:#000;font-weight:700}.chroma .kt{color:#458;font-weight:700}.chroma .na{color:teal}.chroma .nb{color:#0086b3}.chroma .bp{color:#999}.chroma .nc{color:#458;font-weight:700}.chroma .no{color:teal}.chroma .nd{color:#3c5d5d;font-weight:700}.chroma .ni{color:purple}.chroma .ne{color:#900;font-weight:700}.chroma .nf{color:#900;font-weight:700}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#555}.chroma .nt{color:navy}.chroma .nv{color:teal}.chroma .vc{color:teal}.chroma .vg{color:teal}.chroma .vi{color:teal}.chroma .s{color:#d14}.chroma .sa{color:#d14}.chroma .sb{color:#d14}.chroma .sc{color:#d14}.chroma .dl{color:#d14}.chroma .sd{color:#d14}.chroma .s2{color:#d14}.chroma .se{color:#d14}.chroma .sh{color:#d14}.chroma .si{color:#d14}.chroma .sx{color:#d14}.chroma .sr{color:#009926}.chroma .s1{color:#d14}.chroma .ss{color:#990073}.chroma .m{color:#099}.chroma .mb{color:#099}.chroma .mf{color:#099}.chroma .mh{color:#099}.chroma .mi{color:#099}.chroma .il{color:#099}.chroma .mo{color:#099}.chroma .o{color:#000;font-weight:700}.chroma .ow{color:#000;font-weight:700}.chroma .c{color:#998;font-style:italic}.chroma .ch{color:#998;font-style:italic}.chroma .cm{color:#998;font-style:italic}.chroma .c1{color:#998;font-style:italic}.chroma .cs{color:#999;font-weight:700;font-style:italic}.chroma .cp{color:#999;font-weight:700;font-style:italic}.chroma .cpf{color:#999;font-weight:700;font-style:italic}.chroma .gd{color:#000;background-color:#fdd}.chroma .ge{color:#000;font-style:italic}.chroma .gr{color:#a00}.chroma .gh{color:#999}.chroma .gi{color:#000;background-color:#dfd}.chroma .go{color:#888}.chroma .gp{color:#555}.chroma .gs{font-weight:700}.chroma .gu{color:#aaa}.chroma .gt{color:#a00}.chroma .gl{text-decoration:underline}.chroma .w{color:#bbb}
\ No newline at end of file
+* Copyright 2024 Fonticons, Inc.*/.fa.fa-glass{--fa:"\f000"}.fa.fa-envelope-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-envelope-o{--fa:"\f0e0"}.fa.fa-star-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-star-o{--fa:"\f005"}.fa.fa-remove{--fa:"\f00d"}.fa.fa-close{--fa:"\f00d"}.fa.fa-gear{--fa:"\f013"}.fa.fa-trash-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-trash-o{--fa:"\f2ed"}.fa.fa-home{--fa:"\f015"}.fa.fa-file-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-o{--fa:"\f15b"}.fa.fa-clock-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-clock-o{--fa:"\f017"}.fa.fa-arrow-circle-o-down{font-family:'font awesome 6 free';font-weight:400}.fa.fa-arrow-circle-o-down{--fa:"\f358"}.fa.fa-arrow-circle-o-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-arrow-circle-o-up{--fa:"\f35b"}.fa.fa-play-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-play-circle-o{--fa:"\f144"}.fa.fa-repeat{--fa:"\f01e"}.fa.fa-rotate-right{--fa:"\f01e"}.fa.fa-refresh{--fa:"\f021"}.fa.fa-list-alt{font-family:'font awesome 6 free';font-weight:400}.fa.fa-list-alt{--fa:"\f022"}.fa.fa-dedent{--fa:"\f03b"}.fa.fa-video-camera{--fa:"\f03d"}.fa.fa-picture-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-picture-o{--fa:"\f03e"}.fa.fa-photo{font-family:'font awesome 6 free';font-weight:400}.fa.fa-photo{--fa:"\f03e"}.fa.fa-image{font-family:'font awesome 6 free';font-weight:400}.fa.fa-image{--fa:"\f03e"}.fa.fa-map-marker{--fa:"\f3c5"}.fa.fa-pencil-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-pencil-square-o{--fa:"\f044"}.fa.fa-edit{font-family:'font awesome 6 free';font-weight:400}.fa.fa-edit{--fa:"\f044"}.fa.fa-share-square-o{--fa:"\f14d"}.fa.fa-check-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-check-square-o{--fa:"\f14a"}.fa.fa-arrows{--fa:"\f0b2"}.fa.fa-times-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-times-circle-o{--fa:"\f057"}.fa.fa-check-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-check-circle-o{--fa:"\f058"}.fa.fa-mail-forward{--fa:"\f064"}.fa.fa-expand{--fa:"\f424"}.fa.fa-compress{--fa:"\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{--fa:"\f071"}.fa.fa-calendar{--fa:"\f073"}.fa.fa-arrows-v{--fa:"\f338"}.fa.fa-arrows-h{--fa:"\f337"}.fa.fa-bar-chart{--fa:"\e0e3"}.fa.fa-bar-chart-o{--fa:"\e0e3"}.fa.fa-twitter-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-twitter-square{--fa:"\f081"}.fa.fa-facebook-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-facebook-square{--fa:"\f082"}.fa.fa-gears{--fa:"\f085"}.fa.fa-thumbs-o-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-thumbs-o-up{--fa:"\f164"}.fa.fa-thumbs-o-down{font-family:'font awesome 6 free';font-weight:400}.fa.fa-thumbs-o-down{--fa:"\f165"}.fa.fa-heart-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-heart-o{--fa:"\f004"}.fa.fa-sign-out{--fa:"\f2f5"}.fa.fa-linkedin-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-linkedin-square{--fa:"\f08c"}.fa.fa-thumb-tack{--fa:"\f08d"}.fa.fa-external-link{--fa:"\f35d"}.fa.fa-sign-in{--fa:"\f2f6"}.fa.fa-github-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-github-square{--fa:"\f092"}.fa.fa-lemon-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-lemon-o{--fa:"\f094"}.fa.fa-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-square-o{--fa:"\f0c8"}.fa.fa-bookmark-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-bookmark-o{--fa:"\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{--fa:"\f39e"}.fa.fa-facebook-f{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-facebook-f{--fa:"\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{--fa:"\f09e"}.fa.fa-hdd-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hdd-o{--fa:"\f0a0"}.fa.fa-hand-o-right{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-o-right{--fa:"\f0a4"}.fa.fa-hand-o-left{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-o-left{--fa:"\f0a5"}.fa.fa-hand-o-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-o-up{--fa:"\f0a6"}.fa.fa-hand-o-down{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-o-down{--fa:"\f0a7"}.fa.fa-globe{--fa:"\f57d"}.fa.fa-tasks{--fa:"\f828"}.fa.fa-arrows-alt{--fa:"\f31e"}.fa.fa-group{--fa:"\f0c0"}.fa.fa-chain{--fa:"\f0c1"}.fa.fa-cut{--fa:"\f0c4"}.fa.fa-files-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-files-o{--fa:"\f0c5"}.fa.fa-floppy-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-floppy-o{--fa:"\f0c7"}.fa.fa-save{font-family:'font awesome 6 free';font-weight:400}.fa.fa-save{--fa:"\f0c7"}.fa.fa-navicon{--fa:"\f0c9"}.fa.fa-reorder{--fa:"\f0c9"}.fa.fa-magic{--fa:"\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{--fa:"\f0d3"}.fa.fa-google-plus-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-google-plus-square{--fa:"\f0d4"}.fa.fa-google-plus{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-google-plus{--fa:"\f0d5"}.fa.fa-money{--fa:"\f3d1"}.fa.fa-unsorted{--fa:"\f0dc"}.fa.fa-sort-desc{--fa:"\f0dd"}.fa.fa-sort-asc{--fa:"\f0de"}.fa.fa-linkedin{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-linkedin{--fa:"\f0e1"}.fa.fa-rotate-left{--fa:"\f0e2"}.fa.fa-legal{--fa:"\f0e3"}.fa.fa-tachometer{--fa:"\f625"}.fa.fa-dashboard{--fa:"\f625"}.fa.fa-comment-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-comment-o{--fa:"\f075"}.fa.fa-comments-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-comments-o{--fa:"\f086"}.fa.fa-flash{--fa:"\f0e7"}.fa.fa-clipboard{--fa:"\f0ea"}.fa.fa-lightbulb-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-lightbulb-o{--fa:"\f0eb"}.fa.fa-exchange{--fa:"\f362"}.fa.fa-cloud-download{--fa:"\f0ed"}.fa.fa-cloud-upload{--fa:"\f0ee"}.fa.fa-bell-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-bell-o{--fa:"\f0f3"}.fa.fa-cutlery{--fa:"\f2e7"}.fa.fa-file-text-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-text-o{--fa:"\f15c"}.fa.fa-building-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-building-o{--fa:"\f1ad"}.fa.fa-hospital-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hospital-o{--fa:"\f0f8"}.fa.fa-tablet{--fa:"\f3fa"}.fa.fa-mobile{--fa:"\f3cd"}.fa.fa-mobile-phone{--fa:"\f3cd"}.fa.fa-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-circle-o{--fa:"\f111"}.fa.fa-mail-reply{--fa:"\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{--fa:"\f07b"}.fa.fa-folder-open-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-folder-open-o{--fa:"\f07c"}.fa.fa-smile-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-smile-o{--fa:"\f118"}.fa.fa-frown-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-frown-o{--fa:"\f119"}.fa.fa-meh-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-meh-o{--fa:"\f11a"}.fa.fa-keyboard-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-keyboard-o{--fa:"\f11c"}.fa.fa-flag-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-flag-o{--fa:"\f024"}.fa.fa-mail-reply-all{--fa:"\f122"}.fa.fa-star-half-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-star-half-o{--fa:"\f5c0"}.fa.fa-star-half-empty{font-family:'font awesome 6 free';font-weight:400}.fa.fa-star-half-empty{--fa:"\f5c0"}.fa.fa-star-half-full{font-family:'font awesome 6 free';font-weight:400}.fa.fa-star-half-full{--fa:"\f5c0"}.fa.fa-code-fork{--fa:"\f126"}.fa.fa-chain-broken{--fa:"\f127"}.fa.fa-unlink{--fa:"\f127"}.fa.fa-calendar-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-calendar-o{--fa:"\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{--fa:"\f09c"}.fa.fa-minus-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-minus-square-o{--fa:"\f146"}.fa.fa-level-up{--fa:"\f3bf"}.fa.fa-level-down{--fa:"\f3be"}.fa.fa-pencil-square{--fa:"\f14b"}.fa.fa-external-link-square{--fa:"\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{--fa:"\f150"}.fa.fa-toggle-down{font-family:'font awesome 6 free';font-weight:400}.fa.fa-toggle-down{--fa:"\f150"}.fa.fa-caret-square-o-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-caret-square-o-up{--fa:"\f151"}.fa.fa-toggle-up{font-family:'font awesome 6 free';font-weight:400}.fa.fa-toggle-up{--fa:"\f151"}.fa.fa-caret-square-o-right{font-family:'font awesome 6 free';font-weight:400}.fa.fa-caret-square-o-right{--fa:"\f152"}.fa.fa-toggle-right{font-family:'font awesome 6 free';font-weight:400}.fa.fa-toggle-right{--fa:"\f152"}.fa.fa-eur{--fa:"\f153"}.fa.fa-euro{--fa:"\f153"}.fa.fa-gbp{--fa:"\f154"}.fa.fa-usd{--fa:"\24"}.fa.fa-dollar{--fa:"\24"}.fa.fa-inr{--fa:"\e1bc"}.fa.fa-rupee{--fa:"\e1bc"}.fa.fa-jpy{--fa:"\f157"}.fa.fa-cny{--fa:"\f157"}.fa.fa-rmb{--fa:"\f157"}.fa.fa-yen{--fa:"\f157"}.fa.fa-rub{--fa:"\f158"}.fa.fa-ruble{--fa:"\f158"}.fa.fa-rouble{--fa:"\f158"}.fa.fa-krw{--fa:"\f159"}.fa.fa-won{--fa:"\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{--fa:"\f15a"}.fa.fa-file-text{--fa:"\f15c"}.fa.fa-sort-alpha-asc{--fa:"\f15d"}.fa.fa-sort-alpha-desc{--fa:"\f881"}.fa.fa-sort-amount-asc{--fa:"\f884"}.fa.fa-sort-amount-desc{--fa:"\f160"}.fa.fa-sort-numeric-asc{--fa:"\f162"}.fa.fa-sort-numeric-desc{--fa:"\f886"}.fa.fa-youtube-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-youtube-square{--fa:"\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{--fa:"\f169"}.fa.fa-youtube-play{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-youtube-play{--fa:"\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{--fa:"\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{--fa:"\f174"}.fa.fa-long-arrow-down{--fa:"\f309"}.fa.fa-long-arrow-up{--fa:"\f30c"}.fa.fa-long-arrow-left{--fa:"\f30a"}.fa.fa-long-arrow-right{--fa:"\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{--fa:"\f184"}.fa.fa-sun-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-sun-o{--fa:"\f185"}.fa.fa-moon-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-moon-o{--fa:"\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{--fa:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:'font awesome 6 free';font-weight:400}.fa.fa-arrow-circle-o-left{--fa:"\f359"}.fa.fa-caret-square-o-left{font-family:'font awesome 6 free';font-weight:400}.fa.fa-caret-square-o-left{--fa:"\f191"}.fa.fa-toggle-left{font-family:'font awesome 6 free';font-weight:400}.fa.fa-toggle-left{--fa:"\f191"}.fa.fa-dot-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-dot-circle-o{--fa:"\f192"}.fa.fa-vimeo-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-vimeo-square{--fa:"\f194"}.fa.fa-try{--fa:"\e2bb"}.fa.fa-turkish-lira{--fa:"\e2bb"}.fa.fa-plus-square-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-plus-square-o{--fa:"\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{--fa:"\f19c"}.fa.fa-bank{--fa:"\f19c"}.fa.fa-mortar-board{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f1b7"}.fa.fa-automobile{--fa:"\f1b9"}.fa.fa-cab{--fa:"\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{--fa:"\f1c1"}.fa.fa-file-word-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-word-o{--fa:"\f1c2"}.fa.fa-file-excel-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-excel-o{--fa:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-powerpoint-o{--fa:"\f1c4"}.fa.fa-file-image-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-image-o{--fa:"\f1c5"}.fa.fa-file-photo-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-photo-o{--fa:"\f1c5"}.fa.fa-file-picture-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-picture-o{--fa:"\f1c5"}.fa.fa-file-archive-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-archive-o{--fa:"\f1c6"}.fa.fa-file-zip-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-zip-o{--fa:"\f1c6"}.fa.fa-file-audio-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-audio-o{--fa:"\f1c7"}.fa.fa-file-sound-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-sound-o{--fa:"\f1c7"}.fa.fa-file-video-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-video-o{--fa:"\f1c8"}.fa.fa-file-movie-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-movie-o{--fa:"\f1c8"}.fa.fa-file-code-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-file-code-o{--fa:"\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{--fa:"\f1cd"}.fa.fa-life-buoy{--fa:"\f1cd"}.fa.fa-life-saver{--fa:"\f1cd"}.fa.fa-support{--fa:"\f1cd"}.fa.fa-circle-o-notch{--fa:"\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{--fa:"\f1d0"}.fa.fa-resistance{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-resistance{--fa:"\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{--fa:"\f1d1"}.fa.fa-git-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-git-square{--fa:"\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{--fa:"\f1d4"}.fa.fa-yc-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-yc-square{--fa:"\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{--fa:"\f1d7"}.fa.fa-send{--fa:"\f1d8"}.fa.fa-paper-plane-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-paper-plane-o{--fa:"\f1d8"}.fa.fa-send-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-send-o{--fa:"\f1d8"}.fa.fa-circle-thin{font-family:'font awesome 6 free';font-weight:400}.fa.fa-circle-thin{--fa:"\f111"}.fa.fa-header{--fa:"\f1dc"}.fa.fa-futbol-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-futbol-o{--fa:"\f1e3"}.fa.fa-soccer-ball-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-soccer-ball-o{--fa:"\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{--fa:"\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{--fa:"\f1f6"}.fa.fa-trash{--fa:"\f2ed"}.fa.fa-copyright{font-family:'font awesome 6 free';font-weight:400}.fa.fa-eyedropper{--fa:"\f1fb"}.fa.fa-area-chart{--fa:"\f1fe"}.fa.fa-pie-chart{--fa:"\f200"}.fa.fa-line-chart{--fa:"\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{--fa:"\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{--fa:"\f20a"}.fa.fa-ils{--fa:"\f20b"}.fa.fa-shekel{--fa:"\f20b"}.fa.fa-sheqel{--fa:"\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{--fa:"\f3a5"}.fa.fa-transgender{--fa:"\f224"}.fa.fa-intersex{--fa:"\f224"}.fa.fa-transgender-alt{--fa:"\f225"}.fa.fa-facebook-official{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-facebook-official{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f240"}.fa.fa-battery{--fa:"\f240"}.fa.fa-battery-3{--fa:"\f241"}.fa.fa-battery-2{--fa:"\f242"}.fa.fa-battery-1{--fa:"\f243"}.fa.fa-battery-0{--fa:"\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{--fa:"\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{--fa:"\f254"}.fa.fa-hourglass-1{--fa:"\f251"}.fa.fa-hourglass-2{--fa:"\f252"}.fa.fa-hourglass-3{--fa:"\f253"}.fa.fa-hand-rock-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-rock-o{--fa:"\f255"}.fa.fa-hand-grab-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-grab-o{--fa:"\f255"}.fa.fa-hand-paper-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-paper-o{--fa:"\f256"}.fa.fa-hand-stop-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-stop-o{--fa:"\f256"}.fa.fa-hand-scissors-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-scissors-o{--fa:"\f257"}.fa.fa-hand-lizard-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-lizard-o{--fa:"\f258"}.fa.fa-hand-spock-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-spock-o{--fa:"\f259"}.fa.fa-hand-pointer-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-pointer-o{--fa:"\f25a"}.fa.fa-hand-peace-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-hand-peace-o{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f271"}.fa.fa-calendar-minus-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-calendar-minus-o{--fa:"\f272"}.fa.fa-calendar-times-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-calendar-times-o{--fa:"\f273"}.fa.fa-calendar-check-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-calendar-check-o{--fa:"\f274"}.fa.fa-map-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-map-o{--fa:"\f279"}.fa.fa-commenting{--fa:"\f4ad"}.fa.fa-commenting-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-commenting-o{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f28b"}.fa.fa-stop-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-stop-circle-o{--fa:"\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{--fa:"\f368"}.fa.fa-question-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-question-circle-o{--fa:"\f059"}.fa.fa-volume-control-phone{--fa:"\f2a0"}.fa.fa-asl-interpreting{--fa:"\f2a3"}.fa.fa-deafness{--fa:"\f2a4"}.fa.fa-hard-of-hearing{--fa:"\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{--fa:"\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{--fa:"\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{--fa:"\f2ab"}.fa.fa-snapchat-square{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-snapchat-square{--fa:"\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{--fa:"\f2b3"}.fa.fa-google-plus-circle{font-family:'font awesome 6 brands';font-weight:400}.fa.fa-google-plus-circle{--fa:"\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{--fa:"\f2b4"}.fa.fa-handshake-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-handshake-o{--fa:"\f2b5"}.fa.fa-envelope-open-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-envelope-open-o{--fa:"\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{--fa:"\f2b9"}.fa.fa-vcard{--fa:"\f2bb"}.fa.fa-address-card-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-address-card-o{--fa:"\f2bb"}.fa.fa-vcard-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-vcard-o{--fa:"\f2bb"}.fa.fa-user-circle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-user-circle-o{--fa:"\f2bd"}.fa.fa-user-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-user-o{--fa:"\f007"}.fa.fa-id-badge{font-family:'font awesome 6 free';font-weight:400}.fa.fa-drivers-license{--fa:"\f2c2"}.fa.fa-id-card-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-id-card-o{--fa:"\f2c2"}.fa.fa-drivers-license-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-drivers-license-o{--fa:"\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{--fa:"\f2c7"}.fa.fa-thermometer{--fa:"\f2c7"}.fa.fa-thermometer-3{--fa:"\f2c8"}.fa.fa-thermometer-2{--fa:"\f2c9"}.fa.fa-thermometer-1{--fa:"\f2ca"}.fa.fa-thermometer-0{--fa:"\f2cb"}.fa.fa-bathtub{--fa:"\f2cd"}.fa.fa-s15{--fa:"\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{--fa:"\f410"}.fa.fa-window-close-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-window-close-o{--fa:"\f410"}.fa.fa-times-rectangle-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-times-rectangle-o{--fa:"\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{--fa:"\f2da"}.fa.fa-snowflake-o{font-family:'font awesome 6 free';font-weight:400}.fa.fa-snowflake-o{--fa:"\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}*,*:after,*:before{box-sizing:inherit}html{box-sizing:border-box;font-size:62.5%}body{color:#212121;background-color:#fafafa;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif;font-size:1.8em;font-weight:400;line-height:1.8em}@media only screen and (max-width:768px){body{font-size:1.6em;line-height:1.6em}}iframe[src*=disqus]{color-scheme:light}a{font-weight:500;color:#1565c0;text-decoration:none;transition:all .25s ease-in}a:focus,a:hover{text-decoration:underline}p{margin:2rem 0}@media only screen and (max-width:768px){p{margin:1.5rem 0}}h1,h2,h3,h4,h5,h6{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif;font-weight:600;color:#000;margin:4rem 0 2.5rem}h1:hover .heading-link,h2:hover .heading-link,h3:hover .heading-link,h4:hover .heading-link,h5:hover .heading-link,h6:hover .heading-link{visibility:visible}h1 .heading-link,h2 .heading-link,h3 .heading-link,h4 .heading-link,h5 .heading-link,h6 .heading-link{color:#1565c0;font-weight:inherit;text-decoration:none;font-size:80%;visibility:hidden}h1 .title-link,h2 .title-link,h3 .title-link,h4 .title-link,h5 .title-link,h6 .title-link{color:inherit;font-weight:inherit;text-decoration:none}h1{font-size:3.2rem;line-height:3.6rem}@media only screen and (max-width:768px){h1{font-size:3rem;line-height:3.4rem}}h2{font-size:2.8rem;line-height:3.2rem}@media only screen and (max-width:768px){h2{font-size:2.6rem;line-height:3rem}}h3{font-size:2.4rem;line-height:2.8rem}@media only screen and (max-width:768px){h3{font-size:2.2rem;line-height:2.6rem}}h4{font-size:2.2rem;line-height:2.6rem}@media only screen and (max-width:768px){h4{font-size:2rem;line-height:2.4rem}}h5{font-size:2rem;line-height:2.4rem}@media only screen and (max-width:768px){h5{font-size:1.8rem;line-height:2.2rem}}h6{font-size:1.8rem;line-height:2.2rem}@media only screen and (max-width:768px){h6{font-size:1.6rem;line-height:2rem}}b,strong{font-weight:700}.highlight div,.highlight pre{margin:2rem 0;padding:1rem;border-radius:1rem;overflow-x:auto}pre{display:block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1.6rem;font-weight:400;line-height:2.6rem;overflow-x:auto;margin:2rem 0;padding:1rem;border-radius:1rem}pre code{display:inline-block;background-color:inherit;color:inherit}code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1.6rem;font-weight:400;border-radius:.6rem;padding:.3rem .6rem;background-color:#ccc;color:#212121}@media only screen and (max-width:768px){code{font-size:1.5rem}}blockquote{border-left:2px solid #e0e0e0;padding-left:2rem;line-height:2.2rem;font-weight:400;font-style:italic}*{-webkit-tap-highlight-color:transparent}th,td{padding:1.6rem}table{border-collapse:collapse}table td,table th{border:2px solid #000}table tr:first-child th{border-top:0}table tr:last-child td{border-bottom:0}table tr td:first-child,table tr th:first-child{border-left:0}table tr td:last-child,table tr th:last-child{border-right:0}img{max-width:100%}figure{text-align:center}.footnotes ol li p{margin:0}.preload-transitions *{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.container{margin:1rem auto;max-width:90rem;width:100%;padding-left:2rem;padding-right:2rem}.fab{font-weight:400}.fas{font-weight:700}.float-right{float:right}.float-left{float:left}.fab{font-weight:400}.fas{font-weight:900}.content{flex:1;display:flex;margin-top:1.6rem;margin-bottom:3.2rem}@media only screen and (max-width:768px){.content{margin-top:1rem;margin-bottom:1.6rem}}.content header{margin-top:6.4rem;margin-bottom:3.2rem}.content header h1{font-size:4.2rem;line-height:4.6rem;margin:0}@media only screen and (max-width:768px){.content header h1{font-size:4rem;line-height:4.4rem}}.content article a:where(.external-link):not(:has(img)):after{content:"\f08e";padding-left:.5em;font-size:.75em;display:inline}.content article details summary{cursor:pointer}.content article footer{margin-top:4rem}.content article footer .see-also{margin:3.2rem 0}.content article footer .see-also h3{margin:3.2rem 0}.content article p{text-align:justify;text-justify:auto;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.content .post .post-title{margin-bottom:.75em}.content .post .post-meta i{text-align:center;width:1.6rem;margin-left:0;margin-right:.5rem}.content .post .post-meta .date .posted-on{margin-left:0;margin-right:1.5rem}.content .post .post-meta .tags .tag{display:inline-block;padding:.3rem .6rem;background-color:#e0e0e0;border-radius:.6rem;line-height:1.5em}.content .post .post-meta .tags .tag a{color:#212121}.content .post .post-meta .tags .tag a:active{color:#212121}.content figure{margin:0;padding:0}.content figcaption p{text-align:center;font-style:italic;font-size:1.6rem;margin:0}.avatar img{width:20rem;height:auto;border-radius:50%}@media only screen and (max-width:768px){.avatar img{width:17rem}}.list ul{margin:3.2rem 0;list-style:none;padding:0}.list ul li{font-size:1.8rem}@media only screen and (max-width:768px){.list ul li{margin:1.6rem 0}}.list ul li .date{display:inline-block;flex:1;width:20rem;text-align:right;margin-right:3rem}@media only screen and (max-width:768px){.list ul li .date{display:block;text-align:left}}.list ul li .title{font-size:1.8rem;flex:2;color:#212121;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif;font-weight:700}.list ul li .title:hover,.list ul li .title:focus{color:#1565c0}@media only screen and (min-width:768.1px){.list ul:not(.pagination) li{display:flex}}.centered{display:flex;align-items:center;justify-content:center}.centered .about{text-align:center}.centered .about h1{margin-top:2rem;margin-bottom:.5rem}.centered .about h2{margin-top:1rem;margin-bottom:.5rem;font-size:2.4rem}@media only screen and (max-width:768px){.centered .about h2{font-size:2rem}}.centered .about ul{list-style:none;margin:3rem 0 1rem;padding:0;cursor:pointer}.centered .about ul li{display:inline-block;position:relative}.centered .about ul li a{color:#212121;text-transform:uppercase;margin-left:1rem;margin-right:1rem;font-size:1.6rem}.centered .about ul li a:hover,.centered .about ul li a:focus{color:#1565c0}@media only screen and (max-width:768px){.centered .about ul li a{font-size:1.5rem}}.centered .error{text-align:center}.centered .error h1{margin-top:2rem;margin-bottom:.5rem;font-size:4.6rem}@media only screen and (max-width:768px){.centered .error h1{font-size:3.2rem}}.centered .error h2{margin-top:2rem;margin-bottom:3.2rem;font-size:3.2rem}@media only screen and (max-width:768px){.centered .error h2{font-size:2.8rem}}.notice{border-radius:.2rem;position:relative;margin:2rem 0;padding:0 .75rem;overflow:auto}.notice .notice-title{position:relative;font-weight:700;margin:0 -.75rem;padding:.2rem 3.5rem;border-bottom:1px solid #fafafa}.notice .notice-title i{position:absolute;top:50%;left:1.8rem;transform:translate(-50%,-50%)}.notice .notice-content{display:block;margin:2rem}.notice.note{background-color:#7e57c21a}.notice.note .notice-title{background-color:#673ab71a}.notice.note .notice-title i{color:#5e35b1}.notice.tip{background-color:#26a69a1a}.notice.tip .notice-title{background-color:#0096881a}.notice.tip .notice-title i{color:#00897b}.notice.example{background-color:#8d6e631a}.notice.example .notice-title{background-color:#7955481a}.notice.example .notice-title i{color:#6d4c41}.notice.question{background-color:#9ccc651a}.notice.question .notice-title{background-color:#8bc34a1a}.notice.question .notice-title i{color:#7cb342}.notice.info{background-color:#42a5f51a}.notice.info .notice-title{background-color:#2196f31a}.notice.info .notice-title i{color:#1e88e5}.notice.warning{background-color:#ffca281a}.notice.warning .notice-title{background-color:#ffc1071a}.notice.warning .notice-title i{color:#ffb300}.notice.error{background-color:#ef53501a}.notice.error .notice-title{background-color:#f443361a}.notice.error .notice-title i{color:#e53935}.navigation{height:6rem;width:100%}.navigation a,.navigation span{display:inline;font-size:1.7rem;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif;font-weight:600;color:#212121}.navigation a:hover,.navigation a:focus{color:#1565c0}.navigation .navigation-title{letter-spacing:.1rem;text-transform:uppercase}.navigation .navigation-list{float:right;list-style:none;margin-bottom:0;margin-top:0}@media only screen and (max-width:768px){.navigation .navigation-list{position:relative;top:2rem;right:0;z-index:5;visibility:hidden;opacity:0;padding:0;max-height:0;width:100%;background-color:#fafafa;border-top:solid 2px #e0e0e0;border-bottom:solid 2px #e0e0e0;transition:opacity .25s,max-height .15s linear}}.navigation .navigation-list .navigation-item{float:left;margin:0;position:relative}@media only screen and (max-width:768px){.navigation .navigation-list .navigation-item{float:none!important;text-align:center}.navigation .navigation-list .navigation-item a,.navigation .navigation-list .navigation-item span{line-height:5rem}}.navigation .navigation-list .navigation-item a,.navigation .navigation-list .navigation-item span{margin-left:1rem;margin-right:1rem}@media only screen and (max-width:768px){.navigation .navigation-list .separator{display:none}}@media only screen and (max-width:768px){.navigation .navigation-list .menu-separator{border-top:2px solid #212121;margin:0 8rem}.navigation .navigation-list .menu-separator span{display:none}}.navigation #dark-mode-toggle{margin:1.7rem 0;font-size:2.4rem;line-height:inherit;bottom:2rem;left:2rem;z-index:100;position:fixed}.navigation #menu-toggle{display:none}@media only screen and (max-width:768px){.navigation #menu-toggle{display:initial;position:relative;visibility:hidden}.navigation #menu-toggle:checked+label>i{color:#e0e0e0}.navigation #menu-toggle:checked+label+ul{visibility:visible;opacity:1;max-height:100rem}.navigation #menu-toggle:focus-visible+label{outline-style:auto}}.navigation .menu-button{display:none}@media only screen and (max-width:768px){.navigation .menu-button{position:relative;display:block;font-size:2.4rem;font-weight:400}}.navigation .menu-button i:hover,.navigation .menu-button i:focus{color:#000}.navigation i{color:#212121;cursor:pointer}.navigation i:hover,.navigation i:focus{color:#1565c0}.pagination{display:flex;justify-content:center;margin-top:6rem;text-align:center;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,Helvetica,游ゴシック,pingfang sc,STXihei,华文细黑,microsoft yahei,微软雅黑,SimSun,宋体,Heiti,黑体,sans-serif}.pagination li{display:inline;text-align:center;font-weight:700;padding:0 5px;margin:0;text-align:center;width:2.2rem}.pagination li a{font-weight:300}.tabs{display:flex;flex-wrap:wrap;margin:2rem 0;position:relative}.tabs.tabs-left{justify-content:flex-start}.tabs.tabs-left label.tab-label{margin-right:.5rem}.tabs.tabs-left .tab-content{border-radius:0 4px 4px 4px}.tabs.tabs-right{justify-content:flex-end}.tabs.tabs-right label.tab-label{margin-left:.5rem}.tabs.tabs-right .tab-content{border-radius:4px 0 4px 4px}.tabs input.tab-input{display:none}.tabs label.tab-label{background-color:#e0e0e0;border-color:#ccc;border-radius:4px 4px 0 0;border-style:solid;border-bottom-style:hidden;border-width:1px;cursor:pointer;display:inline-block;order:1;padding:.3rem .6rem;position:relative;top:1px;user-select:none}.tabs input.tab-input:checked+label.tab-label{background-color:#fafafa}.tabs .tab-content{background-color:#fafafa;border-color:#ccc;border-style:solid;border-width:1px;display:none;order:2;padding:1rem;width:100%}.tabs.tabs-code .tab-content{padding:.5rem}.tabs.tabs-code .tab-content pre{margin:0}.taxonomy li{display:inline-block;margin:.9rem}.taxonomy .taxonomy-element{display:block;padding:.3rem .9rem;background-color:#e0e0e0;border-radius:.6rem}.taxonomy .taxonomy-element a{color:#212121}.taxonomy .taxonomy-element a:active{color:#212121}.footer{width:100%;text-align:center;font-size:1.6rem;line-height:2rem;margin-bottom:1rem}@media only screen and (max-width:768px){.footer{font-size:1.5rem}}.footer a{color:#1565c0}.float-container{bottom:2rem;right:2rem;z-index:100;position:fixed;font-size:1.6em}.float-container a{position:relative;display:inline-block;width:3rem;height:3rem;font-size:2rem;color:#000;background-color:#e0e0e0;border-radius:.2rem;opacity:.5;transition:all .25s ease-in}.float-container a:hover,.float-container a:focus{color:#1565c0;opacity:1}@media only screen and (max-width:768px){.float-container a:hover,.float-container a:focus{color:#000;opacity:.5}}.float-container a i{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mastodon-wrapper{display:flex;gap:3rem;flex-direction:row}.comment-level{max-width:3rem;min-width:3rem}.reply-original{display:none}.mastodon-comment{background-color:var(--body-background);border-radius:var(--card-border-radius);padding:var(--card-padding);margin-bottom:1rem;display:flex;gap:1rem;flex-direction:column;flex-grow:2}.mastodon-comment .comment{display:flex;flex-direction:row;gap:1rem;flex-wrap:true}.mastodon-comment .comment-avatar img{width:6rem}.mastodon-comment .content{flex-grow:2}.mastodon-comment .comment-author{display:flex;flex-direction:column}.mastodon-comment .comment-author-name{font-weight:700}.mastodon-comment .comment-author-name a{display:flex;align-items:center}.mastodon-comment .comment-author-date{margin-left:auto}.mastodon-comment .disabled{color:var(--accent-color)}.mastodon-comment-content p:first-child{margin-top:0}.mastodon{--dlg-bg:#282c37;--dlg-w:600px;--dlg-color:#9baec8;--dlg-button-p:0.75em 2em;--dlg-outline-c:#00D9F5}.bg{background-color:#fff}.chroma{background-color:#fff}.chroma .err{color:#a61717;background-color:#e3d2d2}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#ffc}.chroma .lnt{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#000;font-weight:700}.chroma .kc{color:#000;font-weight:700}.chroma .kd{color:#000;font-weight:700}.chroma .kn{color:#000;font-weight:700}.chroma .kp{color:#000;font-weight:700}.chroma .kr{color:#000;font-weight:700}.chroma .kt{color:#458;font-weight:700}.chroma .na{color:teal}.chroma .nb{color:#0086b3}.chroma .bp{color:#999}.chroma .nc{color:#458;font-weight:700}.chroma .no{color:teal}.chroma .nd{color:#3c5d5d;font-weight:700}.chroma .ni{color:purple}.chroma .ne{color:#900;font-weight:700}.chroma .nf{color:#900;font-weight:700}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#555}.chroma .nt{color:navy}.chroma .nv{color:teal}.chroma .vc{color:teal}.chroma .vg{color:teal}.chroma .vi{color:teal}.chroma .s{color:#d14}.chroma .sa{color:#d14}.chroma .sb{color:#d14}.chroma .sc{color:#d14}.chroma .dl{color:#d14}.chroma .sd{color:#d14}.chroma .s2{color:#d14}.chroma .se{color:#d14}.chroma .sh{color:#d14}.chroma .si{color:#d14}.chroma .sx{color:#d14}.chroma .sr{color:#009926}.chroma .s1{color:#d14}.chroma .ss{color:#990073}.chroma .m{color:#099}.chroma .mb{color:#099}.chroma .mf{color:#099}.chroma .mh{color:#099}.chroma .mi{color:#099}.chroma .il{color:#099}.chroma .mo{color:#099}.chroma .o{color:#000;font-weight:700}.chroma .ow{color:#000;font-weight:700}.chroma .c{color:#998;font-style:italic}.chroma .ch{color:#998;font-style:italic}.chroma .cm{color:#998;font-style:italic}.chroma .c1{color:#998;font-style:italic}.chroma .cs{color:#999;font-weight:700;font-style:italic}.chroma .cp{color:#999;font-weight:700;font-style:italic}.chroma .cpf{color:#999;font-weight:700;font-style:italic}.chroma .gd{color:#000;background-color:#fdd}.chroma .ge{color:#000;font-style:italic}.chroma .gr{color:#a00}.chroma .gh{color:#999}.chroma .gi{color:#000;background-color:#dfd}.chroma .go{color:#888}.chroma .gp{color:#555}.chroma .gs{font-weight:700}.chroma .gu{color:#aaa}.chroma .gt{color:#a00}.chroma .gl{text-decoration:underline}.chroma .w{color:#bbb}
\ No newline at end of file
diff --git a/index.html b/index.html
index cb4f664..c3db4a0 100644
--- a/index.html
+++ b/index.html
@@ -1,7 +1,7 @@
-Eric X. Liu's Personal Page
\ No newline at end of file
diff --git a/index.xml b/index.xml
index 1c7d677..c6991dd 100644
--- a/index.xml
+++ b/index.xml
@@ -1,38 +1,39 @@
-Eric X. Liu's Personal Page /Recent content on Eric X. Liu's Personal Page Hugo en Wed, 20 Aug 2025 06:28:39 +0000 Quantization in LLMs /posts/quantization-in-llms/Tue, 19 Aug 2025 00:00:00 +0000 /posts/quantization-in-llms/ <p>The burgeoning scale of Large Language Models (LLMs) has necessitated a paradigm shift in their deployment, moving beyond full-precision floating-point arithmetic towards lower-precision representations. Quantization, the process of mapping a wide range of continuous values to a smaller, discrete set, has emerged as a critical technique to reduce model size, accelerate inference, and lower energy consumption. This article provides a technical overview of quantization theories, their application in modern LLMs, and highlights the ongoing innovations in this domain.</p> Breville Barista Pro Maintenance /posts/breville-barista-pro-maintenance/Sat, 16 Aug 2025 00:00:00 +0000 /posts/breville-barista-pro-maintenance/ <p>Proper maintenance is critical for the longevity and performance of a Breville Barista Pro espresso machine. Consistent cleaning not only ensures the machine functions correctly but also directly impacts the quality of the espresso produced. This guide provides a detailed, technical breakdown of the essential maintenance routines, from automated cycles to daily upkeep.</p>
-<h4 id="understanding-the-two-primary-maintenance-cycles">
- <strong>Understanding the Two Primary Maintenance Cycles</strong>
- <a class="heading-link" href="#understanding-the-two-primary-maintenance-cycles">
- <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i>
- <span class="sr-only">Link to heading</span>
- </a>
-</h4>
-<p>The Breville Barista Pro has two distinct, automated maintenance procedures: the <strong>Cleaning (Flush) Cycle</strong> and the <strong>Descale Cycle</strong>. It is important to understand that these are not interchangeable, as they address different types of buildup within the machine.</p> Fixing GPU Operator Pods Stuck in Init: Secure Boot, DKMS, and MOK on Proxmox + Debian /posts/secure-boot-dkms-and-mok-on-proxmox-debian/Sat, 09 Aug 2025 00:00:00 +0000 /posts/secure-boot-dkms-and-mok-on-proxmox-debian/ <p>I hit an issue where all GPU Operator pods on one node were stuck in Init after migrating from Legacy BIOS to UEFI. The common error was NVIDIA components waiting for “toolkit-ready,” while the toolkit init container looped with:</p>
-<ul>
-<li>nvidia-smi failed to communicate with the NVIDIA driver</li>
-<li>modprobe nvidia → “Key was rejected by service”</li>
-</ul>
-<p>That message is the tell: Secure Boot is enabled and the kernel refuses to load modules not signed by a trusted key.</p> Beyond Words: How RVQ Teaches LLMs to See and Hear /posts/how-rvq-teaches-llms-to-see-and-hear/Thu, 07 Aug 2025 00:00:00 +0000 /posts/how-rvq-teaches-llms-to-see-and-hear/ <p>Large Language Models (LLMs) are masters of text, but the world is not made of text alone. It’s a symphony of sights, sounds, and experiences. The ultimate goal for AI is to understand this rich, multi-modal world as we do. But how do you teach a model that thinks in words to understand a picture of a sunset or the melody of a song?</p>
-<p>The answer lies in creating a universal language—a bridge between the continuous, messy world of pixels and audio waves and the discrete, structured world of language tokens. One of the most elegant and powerful tools for building this bridge is <strong>Residual Vector Quantization (RVQ)</strong>.</p> Supabase Deep Dive: It's Not Magic, It's Just Postgres /posts/supabase-deep-dive/Sun, 03 Aug 2025 00:00:00 +0000 /posts/supabase-deep-dive/ <p>In the world of Backend-as-a-Service (BaaS), platforms are often treated as magic boxes. You push data in, you get data out, and you hope the magic inside scales. While this simplicity is powerful, it can obscure the underlying mechanics, leaving developers wondering what’s really going on.</p>
-<p>Supabase enters this space with a radically different philosophy: <strong>transparency</strong>. It provides the convenience of a BaaS, but it’s built on the world’s most trusted relational database: PostgreSQL. The “magic” isn’t a proprietary black box; it’s a carefully assembled suite of open-source tools that enhance Postgres, not hide it.</p> A Deep Dive into PPO for Language Models /posts/ppo-for-language-models/Sat, 02 Aug 2025 00:00:00 +0000 /posts/ppo-for-language-models/ <p>Large Language Models (LLMs) have demonstrated astonishing capabilities, but out-of-the-box, they are simply powerful text predictors. They don’t inherently understand what makes a response helpful, harmless, or aligned with human values. The technique that has proven most effective at bridging this gap is Reinforcement Learning from Human Feedback (RLHF), and at its heart lies a powerful algorithm: Proximal Policy Optimization (PPO).</p>
-<p>You may have seen diagrams like the one below, which outlines the RLHF training process. It can look intimidating, with a web of interconnected models, losses, and data flows.</p> Mixture-of-Experts (MoE) Models Challenges & Solutions in Practice /posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/Wed, 02 Jul 2025 00:00:00 +0000 /posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/ <p>Mixture-of-Experts (MoEs) are neural network architectures that allow different parts of the model (called “experts”) to specialize in different types of inputs. A “gating network” or “router” learns to dispatch each input (or “token”) to a subset of these experts. While powerful for scaling models, MoEs introduce several practical challenges.</p>
-<h3 id="1-challenge-non-differentiability-of-routing-functions">
+Eric X. Liu's Personal Page /Recent content on Eric X. Liu's Personal Page Hugo en Mon, 22 Sep 2025 07:27:14 +0000 UniFi VLAN Migration to Zone-Based Architecture /posts/unifi-vlan-migration-to-zone-based-architecture/Mon, 22 Sep 2025 00:00:00 +0000 /posts/unifi-vlan-migration-to-zone-based-architecture/ <p>Embarking on a network migration to a properly segmented VLAN architecture is a rite of passage for any serious home lab or small business operator. The goal is clear: improve security and organization by separating traffic. However, the path from a flat network to a segmented one is often paved with subtle but critical configuration details that can lead to hours of frustrating troubleshooting.</p>
+<p>This article documents that journey. It details the pitfalls encountered, the core networking concepts that were essential to understand, and the best practices that ultimately led to a stable, secure, and logical network design built on a zone-based firewall model.</p> Quantization in LLMs /posts/quantization-in-llms/Tue, 19 Aug 2025 00:00:00 +0000 /posts/quantization-in-llms/ <p>The burgeoning scale of Large Language Models (LLMs) has necessitated a paradigm shift in their deployment, moving beyond full-precision floating-point arithmetic towards lower-precision representations. Quantization, the process of mapping a wide range of continuous values to a smaller, discrete set, has emerged as a critical technique to reduce model size, accelerate inference, and lower energy consumption. This article provides a technical overview of quantization theories, their application in modern LLMs, and highlights the ongoing innovations in this domain.</p> Breville Barista Pro Maintenance /posts/breville-barista-pro-maintenance/Sat, 16 Aug 2025 00:00:00 +0000 /posts/breville-barista-pro-maintenance/ <p>Proper maintenance is critical for the longevity and performance of a Breville Barista Pro espresso machine. Consistent cleaning not only ensures the machine functions correctly but also directly impacts the quality of the espresso produced. This guide provides a detailed, technical breakdown of the essential maintenance routines, from automated cycles to daily upkeep.</p>
+<h4 id="understanding-the-two-primary-maintenance-cycles">
+ <strong>Understanding the Two Primary Maintenance Cycles</strong>
+ <a class="heading-link" href="#understanding-the-two-primary-maintenance-cycles">
+ <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i>
+ <span class="sr-only">Link to heading</span>
+ </a>
+</h4>
+<p>The Breville Barista Pro has two distinct, automated maintenance procedures: the <strong>Cleaning (Flush) Cycle</strong> and the <strong>Descale Cycle</strong>. It is important to understand that these are not interchangeable, as they address different types of buildup within the machine.</p> Fixing GPU Operator Pods Stuck in Init: Secure Boot, DKMS, and MOK on Proxmox + Debian /posts/secure-boot-dkms-and-mok-on-proxmox-debian/Sat, 09 Aug 2025 00:00:00 +0000 /posts/secure-boot-dkms-and-mok-on-proxmox-debian/ <p>I hit an issue where all GPU Operator pods on one node were stuck in Init after migrating from Legacy BIOS to UEFI. The common error was NVIDIA components waiting for “toolkit-ready,” while the toolkit init container looped with:</p>
+<ul>
+<li>nvidia-smi failed to communicate with the NVIDIA driver</li>
+<li>modprobe nvidia → “Key was rejected by service”</li>
+</ul>
+<p>That message is the tell: Secure Boot is enabled and the kernel refuses to load modules not signed by a trusted key.</p> Beyond Words: How RVQ Teaches LLMs to See and Hear /posts/how-rvq-teaches-llms-to-see-and-hear/Thu, 07 Aug 2025 00:00:00 +0000 /posts/how-rvq-teaches-llms-to-see-and-hear/ <p>Large Language Models (LLMs) are masters of text, but the world is not made of text alone. It’s a symphony of sights, sounds, and experiences. The ultimate goal for AI is to understand this rich, multi-modal world as we do. But how do you teach a model that thinks in words to understand a picture of a sunset or the melody of a song?</p>
+<p>The answer lies in creating a universal language—a bridge between the continuous, messy world of pixels and audio waves and the discrete, structured world of language tokens. One of the most elegant and powerful tools for building this bridge is <strong>Residual Vector Quantization (RVQ)</strong>.</p> Supabase Deep Dive: It's Not Magic, It's Just Postgres /posts/supabase-deep-dive/Sun, 03 Aug 2025 00:00:00 +0000 /posts/supabase-deep-dive/ <p>In the world of Backend-as-a-Service (BaaS), platforms are often treated as magic boxes. You push data in, you get data out, and you hope the magic inside scales. While this simplicity is powerful, it can obscure the underlying mechanics, leaving developers wondering what’s really going on.</p>
+<p>Supabase enters this space with a radically different philosophy: <strong>transparency</strong>. It provides the convenience of a BaaS, but it’s built on the world’s most trusted relational database: PostgreSQL. The “magic” isn’t a proprietary black box; it’s a carefully assembled suite of open-source tools that enhance Postgres, not hide it.</p> A Deep Dive into PPO for Language Models /posts/ppo-for-language-models/Sat, 02 Aug 2025 00:00:00 +0000 /posts/ppo-for-language-models/ <p>Large Language Models (LLMs) have demonstrated astonishing capabilities, but out-of-the-box, they are simply powerful text predictors. They don’t inherently understand what makes a response helpful, harmless, or aligned with human values. The technique that has proven most effective at bridging this gap is Reinforcement Learning from Human Feedback (RLHF), and at its heart lies a powerful algorithm: Proximal Policy Optimization (PPO).</p>
+<p>You may have seen diagrams like the one below, which outlines the RLHF training process. It can look intimidating, with a web of interconnected models, losses, and data flows.</p> Mixture-of-Experts (MoE) Models Challenges & Solutions in Practice /posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/Wed, 02 Jul 2025 00:00:00 +0000 /posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/ <p>Mixture-of-Experts (MoEs) are neural network architectures that allow different parts of the model (called “experts”) to specialize in different types of inputs. A “gating network” or “router” learns to dispatch each input (or “token”) to a subset of these experts. While powerful for scaling models, MoEs introduce several practical challenges.</p>
+<h3 id="1-challenge-non-differentiability-of-routing-functions">
1. Challenge: Non-Differentiability of Routing Functions
- <a class="heading-link" href="#1-challenge-non-differentiability-of-routing-functions">
- <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i>
- <span class="sr-only">Link to heading</span>
- </a>
-</h3>
-<p><strong>The Problem:</strong>
-Many routing mechanisms, especially “Top-K routing,” involve a discrete, hard selection process. A common function is <code>KeepTopK(v, k)</code>, which selects the top <code>k</code> scoring elements from a vector <code>v</code> and sets others to $-\infty$ or $0$.</p> An Architectural Deep Dive of T5 /posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/Sun, 01 Jun 2025 00:00:00 +0000 /posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/ <p>In the rapidly evolving landscape of Large Language Models, a few key architectures define the dominant paradigms. Today, the “decoder-only” model, popularized by the GPT series and its successors like LLaMA and Mistral, reigns supreme. These models are scaled to incredible sizes and excel at in-context learning.</p>
-<p>But to truly understand the field, we must look at the pivotal models that explored different paths. Google’s T5, or <strong>Text-to-Text Transfer Transformer</strong>, stands out as one of the most influential. It didn’t just introduce a new model; it proposed a new philosophy. This article dives deep into the architecture of T5, how it fundamentally differs from modern LLMs, and the lasting legacy of its unique design choices.</p> Mastering Your Breville Barista Pro: The Ultimate Guide to Dialing In Espresso /posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/Thu, 01 May 2025 00:00:00 +0000 /posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/ <p>Are you ready to transform your home espresso game from good to genuinely great? The Breville Barista Pro is a fantastic machine, but unlocking its full potential requires understanding a few key principles. This guide will walk you through the systematic process of dialing in your espresso, ensuring every shot is delicious and repeatable.</p>
-<p>Our overarching philosophy is simple: <strong>isolate and change only one variable at a time.</strong> While numbers are crucial, your palate is the ultimate judge. Dose, ratio, and time are interconnected, but your <strong>grind size</strong> is your most powerful lever.</p> Transformer's Core Mechanics /posts/transformer-s-core-mechanics/Tue, 01 Apr 2025 00:00:00 +0000 /posts/transformer-s-core-mechanics/ <p>The Transformer architecture is the bedrock of modern Large Language Models (LLMs). While its high-level success is widely known, a deeper understanding requires dissecting its core components. This article provides a detailed, technical breakdown of the fundamental concepts within a Transformer block, from the notion of “channels” to the intricate workings of the attention mechanism and its relationship with other advanced architectures like Mixture of Experts.</p>
-<h3 id="1-the-channel-a-foundational-view-of-d_model">
- 1. The “Channel”: A Foundational View of <code>d_model</code>
- <a class="heading-link" href="#1-the-channel-a-foundational-view-of-d_model">
- <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i>
- <span class="sr-only">Link to heading</span>
- </a>
-</h3>
-<p>In deep learning, a “channel” can be thought of as a feature dimension. While this term is common in Convolutional Neural Networks for images (e.g., Red, Green, Blue channels), in LLMs, the analogous concept is the model’s primary embedding dimension, commonly referred to as <code>d_model</code>.</p> Some useful files /posts/useful/Mon, 26 Oct 2020 04:14:43 +0000 /posts/useful/ <ul>
-<li><a href="/rootCA.crt" >rootCA.pem</a></li>
-</ul> About /about/Fri, 01 Jun 2018 07:13:52 +0000 /about/
\ No newline at end of file
+ <a class="heading-link" href="#1-challenge-non-differentiability-of-routing-functions">
+ <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i>
+ <span class="sr-only">Link to heading</span>
+ </a>
+</h3>
+<p><strong>The Problem:</strong>
+Many routing mechanisms, especially “Top-K routing,” involve a discrete, hard selection process. A common function is <code>KeepTopK(v, k)</code>, which selects the top <code>k</code> scoring elements from a vector <code>v</code> and sets others to $-\infty$ or $0$.</p> An Architectural Deep Dive of T5 /posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/Sun, 01 Jun 2025 00:00:00 +0000 /posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/ <p>In the rapidly evolving landscape of Large Language Models, a few key architectures define the dominant paradigms. Today, the “decoder-only” model, popularized by the GPT series and its successors like LLaMA and Mistral, reigns supreme. These models are scaled to incredible sizes and excel at in-context learning.</p>
+<p>But to truly understand the field, we must look at the pivotal models that explored different paths. Google’s T5, or <strong>Text-to-Text Transfer Transformer</strong>, stands out as one of the most influential. It didn’t just introduce a new model; it proposed a new philosophy. This article dives deep into the architecture of T5, how it fundamentally differs from modern LLMs, and the lasting legacy of its unique design choices.</p> Mastering Your Breville Barista Pro: The Ultimate Guide to Dialing In Espresso /posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/Thu, 01 May 2025 00:00:00 +0000 /posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/ <p>Are you ready to transform your home espresso game from good to genuinely great? The Breville Barista Pro is a fantastic machine, but unlocking its full potential requires understanding a few key principles. This guide will walk you through the systematic process of dialing in your espresso, ensuring every shot is delicious and repeatable.</p>
+<p>Our overarching philosophy is simple: <strong>isolate and change only one variable at a time.</strong> While numbers are crucial, your palate is the ultimate judge. Dose, ratio, and time are interconnected, but your <strong>grind size</strong> is your most powerful lever.</p> Transformer's Core Mechanics /posts/transformer-s-core-mechanics/Tue, 01 Apr 2025 00:00:00 +0000 /posts/transformer-s-core-mechanics/ <p>The Transformer architecture is the bedrock of modern Large Language Models (LLMs). While its high-level success is widely known, a deeper understanding requires dissecting its core components. This article provides a detailed, technical breakdown of the fundamental concepts within a Transformer block, from the notion of “channels” to the intricate workings of the attention mechanism and its relationship with other advanced architectures like Mixture of Experts.</p>
+<h3 id="1-the-channel-a-foundational-view-of-d_model">
+ 1. The “Channel”: A Foundational View of <code>d_model</code>
+ <a class="heading-link" href="#1-the-channel-a-foundational-view-of-d_model">
+ <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i>
+ <span class="sr-only">Link to heading</span>
+ </a>
+</h3>
+<p>In deep learning, a “channel” can be thought of as a feature dimension. While this term is common in Convolutional Neural Networks for images (e.g., Red, Green, Blue channels), in LLMs, the analogous concept is the model’s primary embedding dimension, commonly referred to as <code>d_model</code>.</p> Some useful files /posts/useful/Mon, 26 Oct 2020 04:14:43 +0000 /posts/useful/ <ul>
+<li><a href="/rootCA.crt" >rootCA.pem</a></li>
+</ul> About /about/Fri, 01 Jun 2018 07:13:52 +0000 /about/
\ No newline at end of file
diff --git a/posts/breville-barista-pro-maintenance/index.html b/posts/breville-barista-pro-maintenance/index.html
index deeb116..d90a95b 100644
--- a/posts/breville-barista-pro-maintenance/index.html
+++ b/posts/breville-barista-pro-maintenance/index.html
@@ -8,7 +8,7 @@
The Breville Barista Pro has two distinct, automated maintenance procedures: the Cleaning (Flush) Cycle and the Descale Cycle. It is important to understand that these are not interchangeable, as they address different types of buildup within the machine.">